<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.Deployment.WindowsInstaller</name>
    </assembly>
    <members>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ColumnCollection">
            <summary>
            Collection of column information related to a <see cref="T:Microsoft.Deployment.WindowsInstaller.TableInfo"/> or
            <see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.#ctor(System.Collections.Generic.ICollection{Microsoft.Deployment.WindowsInstaller.ColumnInfo})">
            <summary>
            Creates a new ColumnCollection based on a specified list of columns.
            </summary>
            <param name="columns">columns to be added to the new collection</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.#ctor(Microsoft.Deployment.WindowsInstaller.View)">
            <summary>
            Creates a new ColumnCollection that is associated with a database table.
            </summary>
            <param name="view">view that contains the columns</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Add(Microsoft.Deployment.WindowsInstaller.ColumnInfo)">
            <summary>
            Not supported because the collection is read-only.
            </summary>
            <param name="item">information about the column being added</param>
            <exception cref="T:System.InvalidOperationException">the collection is read-only</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Clear">
            <summary>
            Not supported because the collection is read-only.
            </summary>
            <exception cref="T:System.InvalidOperationException">the collection is read-only</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Contains(System.String)">
            <summary>
            Checks if a column with a given name exists in the collection.
            </summary>
            <param name="columnName">case-sensitive name of the column to look for</param>
            <returns>true if the column exists in the collection, false otherwise</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.System#Collections#Generic#ICollection{Microsoft#Deployment#WindowsInstaller#ColumnInfo}#Contains(Microsoft.Deployment.WindowsInstaller.ColumnInfo)">
            <summary>
            Checks if a column with a given name exists in the collection.
            </summary>
            <param name="column">column to look for, with case-sensitive name</param>
            <returns>true if the column exists in the collection, false otherwise</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.IndexOf(System.String)">
            <summary>
            Gets the index of a column within the collection.
            </summary>
            <param name="columnName">case-sensitive name of the column to look for</param>
            <returns>0-based index of the column, or -1 if not found</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.CopyTo(Microsoft.Deployment.WindowsInstaller.ColumnInfo[],System.Int32)">
            <summary>
            Copies the columns from this collection into an array.
            </summary>
            <param name="array">destination array to be filed</param>
            <param name="arrayIndex">offset into the destination array where copying begins</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.System#Collections#Generic#ICollection{Microsoft#Deployment#WindowsInstaller#ColumnInfo}#Remove(Microsoft.Deployment.WindowsInstaller.ColumnInfo)">
            <summary>
            Not supported because the collection is read-only.
            </summary>
            <param name="column">column to remove</param>
            <returns>true if the column was removed, false if it was not found</returns>
            <exception cref="T:System.InvalidOperationException">the collection is read-only</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.GetEnumerator">
            <summary>
            Gets an enumerator over the columns in the collection.
            </summary>
            <returns>An enumerator of ColumnInfo objects.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Gets an enumerator over the columns in the collection.
            </summary>
            <returns>An enumerator of ColumnInfo objects.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.GetViewColumns(Microsoft.Deployment.WindowsInstaller.View)">
            <summary>
            Creates ColumnInfo objects for the associated view.
            </summary>
            <returns>dynamically-generated list of columns</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.GetViewColumns(Microsoft.Deployment.WindowsInstaller.View,System.Boolean)">
            <summary>
            Gets a list of column names or column-definition-strings for the
            associated view.
            </summary>
            <param name="view">the view to that defines the columns</param>
            <param name="types">true to return types (column definition strings),
            false to return names</param>
            <returns>list of column names or types</returns>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Count">
            <summary>
            Gets the number of columns in the collection.
            </summary>
            <value>number of columns in the collection</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnCollection.IsReadOnly">
            <summary>
            Gets a boolean value indicating whether the collection is read-only.
            A ColumnCollection is read-only if it is associated with a <see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>
            or a read-only <see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.
            </summary>
            <value>read-only status of the collection</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Item(System.Int32)">
            <summary>
            Gets information about a specific column in the collection.
            </summary>
            <param name="columnIndex">1-based index into the column collection</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="columnIndex"/> is less
            than 1 or greater than the number of columns in the collection</exception>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Item(System.String)">
            <summary>
            Gets information about a specific column in the collection.
            </summary>
            <param name="columnName">case-sensitive name of a column collection</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="columnName"/> does
            not exist in the collection</exception>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnCollection.FormatString">
            <summary>
            Gets a string suitable for printing all the values of a record containing these columns.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ComponentAttributes">
            <summary>
            Available values for the Attributes column of the Component table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.None">
            <summary>
            Local only - Component cannot be run from source. 
            </summary>
            <remarks><p>
            Set this value for all components belonging to a feature to prevent the feature from being run-from-network or
            run-from-source. Note that if a feature has no components, the feature always shows run-from-source and
            run-from-my-computer as valid options.
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.SourceOnly">
            <summary>
            Component can only be run from source.
            </summary>
            <remarks><p>
            Set this bit for all components belonging to a feature to prevent the feature from being run-from-my-computer.
            Note that if a feature has no components, the feature always shows run-from-source and run-from-my-computer
            as valid options.
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.Optional">
            <summary>
            Component can run locally or from source.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.RegistryKeyPath">
            <summary>
            If this bit is set, the value in the KeyPath column is used as a key into the Registry table.
            </summary>
            <remarks><p>
            If the Value field of the corresponding record in the Registry table is null, the Name field in that record
            must not contain "+", "-", or "*". For more information, see the description of the Name field in Registry
            table.
            <p>Setting this bit is recommended for registry entries written to the HKCU hive. This ensures the installer
            writes the necessary HKCU registry entries when there are multiple users on the same machine.</p>
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.SharedDllRefCount">
            <summary>
            If this bit is set, the installer increments the reference count in the shared DLL registry of the component's
            key file. If this bit is not set, the installer increments the reference count only if the reference count
            already exists.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.Permanent">
            <summary>
            If this bit is set, the installer does not remove the component during an uninstall. The installer registers
            an extra system client for the component in the Windows Installer registry settings.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.OdbcDataSource">
            <summary>
            If this bit is set, the value in the KeyPath column is a key into the ODBCDataSource table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.Transitive">
            <summary>
            If this bit is set, the installer reevaluates the value of the statement in the Condition column upon a reinstall.
            If the value was previously False and has changed to true, the installer installs the component. If the value
            was previously true and has changed to false, the installer removes the component even if the component has
            other products as clients.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.NeverOverwrite">
            <summary>
            If this bit is set, the installer does not install or reinstall the component if a key path file or a key path
            registry entry for the component already exists. The application does register itself as a client of the component.
            </summary>
            <remarks><p>
            Use this flag only for components that are being registered by the Registry table. Do not use this flag for
            components registered by the AppId, Class, Extension, ProgId, MIME, and Verb tables.
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.SixtyFourBit">
            <summary>
            Set this bit to mark this as a 64-bit component. This attribute facilitates the installation of packages that
            include both 32-bit and 64-bit components. If this bit is not set, the component is registered as a 32-bit component.
            </summary>
            <remarks><p>
            If this is a 64-bit component replacing a 32-bit component, set this bit and assign a new GUID in the
            ComponentId column.
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.DisableRegistryReflection">
            <summary>
            Set this bit to disable registry reflection on all existing and new registry keys affected by this component.
            </summary>
            <remarks><p>
            If this bit is set, the Windows Installer calls the RegDisableReflectionKey on each key being accessed by the component.
            This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems.
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.UninstallOnSupersedence">
            <summary>
            [MSI 4.5] Set this bit for a component in a patch package to prevent leaving orphan components on the computer.
            </summary>
            <remarks><p>
            If a subsequent patch is installed, marked with the SupersedeEarlier flag in its MsiPatchSequence
            table to supersede the first patch, Windows Installer 4.5 can unregister and uninstall components marked with the
            UninstallOnSupersedence value. If the component is not marked with this bit, installation of a superseding patch can leave
            behind an unused component on the computer.
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.Shared">
            <summary>
            [MSI 4.5] If a component is marked with this attribute value in at least one package installed on the system,
            the installer treats the component as marked in all packages. If a package that shares the marked component
            is uninstalled, Windows Installer 4.5 can continue to share the highest version of the component on the system,
            even if that highest version was installed by the package that is being uninstalled.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ControlAttributes">
            <summary>
            Defines flags for the Attributes column of the Control table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Visible">
            <summary>If this bit is set, the control is visible on the dialog box.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Enabled">
            <summary>specifies if the given control is enabled or disabled. Most controls appear gray when disabled.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Sunken">
            <summary>If this bit is set, the control is displayed with a sunken, three dimensional look.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Indirect">
            <summary>The Indirect control attribute specifies whether the value displayed or changed by this control is referenced indirectly.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Integer">
            <summary>If this bit is set on a control, the associated property specified in the Property column of the Control table is an integer.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.RightToLeftReadingOrder">
            <summary>If this bit is set the text in the control is displayed in a right-to-left reading order.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.RightAligned">
            <summary>If this style bit is set, text in the control is aligned to the right.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.LeftScroll">
            <summary>If this bit is set, the scroll bar is located on the left side of the control, otherwise it is on the right.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Bidirectional">
            <summary>This is a combination of the RightToLeftReadingOrder, RightAligned, and LeftScroll attributes.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Transparent">
            <summary>If this bit is set on a text control, the control is displayed transparently with the background showing through the control where there are no characters.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.NoPrefix">
            <summary>If this bit is set on a text control, the occurrence of the character "&amp;" in a text string is displayed as itself.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.NoWrap">
            <summary>If this bit is set the text in the control is displayed on a single line.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.FormatSize">
            <summary>If this bit is set for a text control, the control will automatically attempt to format the displayed text as a number representing a count of bytes.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.UsersLanguage">
            <summary>If this bit is set, fonts are created using the user's default UI code page. Otherwise it is created using the database code page.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Multiline">
            <summary>If this bit is set on an Edit control, the installer creates a multiple line edit control with a vertical scroll bar.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.PasswordInput">
            <summary>This attribute creates an edit control for entering passwords. The control displays each character as an asterisk (*) as they are typed into the control.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Progress95">
            <summary>If this bit is set on a ProgressBar control, the bar is drawn as a series of small rectangles in Microsoft Windows 95-style. Otherwise it is drawn as a single continuous rectangle.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.RemovableVolume">
            <summary>If this bit is set, the control shows removable volumes.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.FixedVolume">
            <summary>If this bit is set, the control shows fixed internal hard drives.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.RemoteVolume">
            <summary>If this bit is set, the control shows remote volumes.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.CdromVolume">
            <summary>If this bit is set, the control shows CD-ROM volumes.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.RamDiskVolume">
            <summary>If this bit is set, the control shows RAM disk volumes.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.FloppyVolume">
            <summary>If this bit is set, the control shows floppy volumes.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.ShowRollbackCost">
            <summary>Specifies whether or not the rollback backup files are included in the costs displayed by the VolumeCostList control.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Sorted">
            <summary>If this bit is set, the items listed in the control are displayed in a specified order. Otherwise, items are displayed in alphabetical order.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.ComboList">
            <summary>If this bit is set on a combo box, the edit field is replaced by a static text field. This prevents a user from entering a new value and requires the user to choose only one of the predefined values.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.PushLike">
            <summary>If this bit is set on a check box or a radio button group, the button is drawn with the appearance of a push button, but its logic stays the same.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Bitmap">
            <summary>If this bit is set, the text in the control is replaced by a bitmap image. The Text column in the Control table is a foreign key into the Binary table.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Icon">
            <summary>If this bit is set, text is replaced by an icon image and the Text column in the Control table is a foreign key into the Binary table.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.FixedSize">
            <summary>If this bit is set, the picture is cropped or centered in the control without changing its shape or size.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.IconSize16">
            <summary>Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.IconSize32">
            <summary>Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.IconSize48">
            <summary>Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.ElevationShield">
            <summary>If this bit is set, and the installation is not yet running with elevated privileges, the control is created with a UAC icon.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.HasBorder">
            <summary>If this bit is set, the RadioButtonGroup has text and a border displayed around it.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.CustomActionTypes">
            <summary>
            Defines flags for the Type column of the CustomAction table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.None">
            <summary>Unspecified custom action type.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Dll">
            <summary>Target = entry point name</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Exe">
            <summary>Target = command line args</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.TextData">
            <summary>Target = text string to be formatted and set into property</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.JScript">
            <summary>Target = entry point name, null if none to call</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.VBScript">
            <summary>Target = entry point name, null if none to call</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Install">
            <summary>Target = property list for nested engine initialization</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.SourceFile">
            <summary>Source = File.File, file part of installation</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Directory">
            <summary>Source = Directory.Directory, folder containing existing file</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Property">
            <summary>Source = Property.Property, full path to executable</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Continue">
            <summary>Ignore action return status, continue running</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Async">
            <summary>Run asynchronously</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.FirstSequence">
            <summary>Skip if UI sequence already run</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.OncePerProcess">
            <summary>Skip if UI sequence already run in same process</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.ClientRepeat">
            <summary>Run on client only if UI already run on client</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.InScript">
            <summary>Queue for execution within script</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Rollback">
            <summary>In conjunction with InScript: queue in Rollback script</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Commit">
            <summary>In conjunction with InScript: run Commit ops from script on success</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.NoImpersonate">
            <summary>No impersonation, run in system context</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.TSAware">
            <summary>Impersonate for per-machine installs on TS machines</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.SixtyFourBitScript">
            <summary>Script requires 64bit process</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.HideTarget">
            <summary>Don't record the contents of the Target field in the log file</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.PatchUninstall">
            <summary>The custom action runs only when a patch is being uninstalled</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.DialogAttributes">
            <summary>
            Defines flags for the Attributes column of the Dialog table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.Visible">
            <summary>If this bit is set, the dialog is originally created as visible, otherwise it is hidden.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.Modal">
            <summary>If this bit is set, the dialog box is modal, other dialogs of the same application cannot be put on top of it, and the dialog keeps the control while it is running.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.Minimize">
            <summary>If this bit is set, the dialog box can be minimized. This bit is ignored for modal dialog boxes, which cannot be minimized.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.SysModal">
            <summary>If this style bit is set, the dialog box will stop all other applications and no other applications can take the focus.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.KeepModeless">
            <summary>If this bit is set, the other dialogs stay alive when this dialog box is created.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.TrackDiskSpace">
            <summary>If this bit is set, the dialog box periodically calls the installer. If the property changes, it notifies the controls on the dialog.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.UseCustomPalette">
            <summary>If this bit is set, the pictures on the dialog box are created with the custom palette (one per dialog received from the first control created).</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.RightToLeftReadingOrder">
            <summary>If this style bit is set the text in the dialog box is displayed in right-to-left-reading order.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.RightAligned">
            <summary>If this style bit is set, the text is aligned on the right side of the dialog box.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.LeftScroll">
            <summary>If this style bit is set, the scroll bar is located on the left side of the dialog box.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.Bidirectional">
            <summary>This is a combination of the RightToLeftReadingOrder, RightAligned, and the LeftScroll dialog style bits.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.Error">
            <summary>If this bit is set, the dialog box is an error dialog.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.FeatureAttributes">
            <summary>
            Available values for the Attributes column of the Feature table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.None">
            <summary>
            Favor local - Components of this feature that are not marked for installation from source are installed locally.
            </summary>
            <remarks><p>
            A component shared by two or more features, some of which are set to FavorLocal and some to FavorSource,
            is installed locally. Components marked <see cref="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.SourceOnly"/> in the Component
            table are always run from the source CD/server. The bits FavorLocal and FavorSource work with features not
            listed by the ADVERTISE property.
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.FavorSource">
            <summary>
            Components of this feature not marked for local installation are installed to run from the source
            CD-ROM or server.
            </summary>
            <remarks><p>
            A component shared by two or more features, some of which are set to FavorLocal and some to FavorSource,
            is installed to run locally. Components marked <see cref="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.None"/> (local-only) in the
            Component table are always installed locally. The bits FavorLocal and FavorSource work with features
            not listed by the ADVERTISE property.
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.FollowParent">
            <summary>
            Set this attribute and the state of the feature is the same as the state of the feature's parent.
            You cannot use this option if the feature is located at the root of a feature tree.
            </summary>
            <remarks><p>
            Omit this attribute and the feature state is determined according to DisallowAdvertise and
            FavorLocal and FavorSource.
            <p>To guarantee that the child feature's state always follows the state of its parent, even when the
            child and parent are initially set to absent in the SelectionTree control, you must include both
            FollowParent and UIDisallowAbsent in the attributes of the child feature.</p>
            <p>Note that if you set FollowParent without setting UIDisallowAbsent, the installer cannot force
            the child feature out of the absent state. In this case, the child feature matches the parent's
            installation state only if the child is set to something other than absent.</p>
            <p>Set FollowParent and UIDisallowAbsent to ensure a child feature follows the state of the parent feature.</p>
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.FavorAdvertise">
            <summary>
            Set this attribute and the feature state is Advertise.
            </summary>
            <remarks><p>
            If the feature is listed by the ADDDEFAULT property this bit is ignored and the feature state is determined
            according to FavorLocal and FavorSource.
            <p>Omit this attribute and the feature state is determined according to DisallowAdvertise and FavorLocal
            and FavorSource.</p>
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.DisallowAdvertise">
            <summary>
            Set this attribute to prevent the feature from being advertised.
            </summary>
            <remarks><p>
            Note that this bit works only with features that are listed by the ADVERTISE property.
            <p>Set this attribute and if the listed feature is not a parent or child, the feature is installed according to
            FavorLocal and FavorSource.</p>
            <p>Set this attribute for the parent of a listed feature and the parent is installed.</p>
            <p>Set this attribute for the child of a listed feature and the state of the child is Absent.</p>
            <p>Omit this attribute and if the listed feature is not a parent or child, the feature state is Advertise.</p>
            <p>Omit this attribute and if the listed feature is a parent or child, the state of both features is Advertise.</p>
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.UIDisallowAbsent">
            <summary>
            Set this attribute and the user interface does not display an option to change the feature state
            to Absent. Setting this attribute forces the feature to the installation state, whether or not the
            feature is visible in the UI.
            </summary>
            <remarks><p>
            Omit this attribute and the user interface displays an option to change the feature state to Absent.
            <p>Set FollowParent and UIDisallowAbsent to ensure a child feature follows the state of the parent feature.</p>
            <p>Setting this attribute not only affects the UI, but also forces the feature to the install state whether
            the feature is visible in the UI or not.</p>
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.NoUnsupportedAdvertise">
            <summary>
            Set this attribute and advertising is disabled for the feature if the operating system shell does not
            support Windows Installer descriptors. 
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.FileAttributes">
            <summary>
            Available values for the Attributes column of the File table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.None">
            <summary>No attributes.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.ReadOnly">
            <summary>Read-only.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.Hidden">
            <summary>Hidden.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.System">
            <summary>System.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.Vital">
            <summary>The file is vital for the proper operation of the component to which it belongs.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.Checksum">
            <summary>The file contains a valid checksum. A checksum is required to repair a file that has become corrupted.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.PatchAdded">
            <summary>This bit must only be added by a patch and if the file is being added by the patch.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.NonCompressed">
            <summary>
            The file's source type is uncompressed. If set, ignore the WordCount summary information property. If neither
            Noncompressed nor Compressed are set, the compression state of the file is specified by the WordCount summary
            information property. Do not set both Noncompressed and Compressed.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.Compressed">
            <summary>
            The file's source type is compressed. If set, ignore the WordCount summary information property. If neither
            Noncompressed or Compressed are set, the compression state of the file is specified by the WordCount summary
            information property. Do not set both Noncompressed and Compressed.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.IniFileAction">
            <summary>
            Defines values for the Action column of the IniFile and RemoveIniFile tables.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.IniFileAction.AddLine">
            <summary>Creates or updates a .ini entry.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.IniFileAction.CreateLine">
            <summary>Creates a .ini entry only if the entry does not already exist.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.IniFileAction.RemoveLine">
            <summary>Deletes .ini entry.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.IniFileAction.AddTag">
            <summary>Creates a new entry or appends a new comma-separated value to an existing entry.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.IniFileAction.RemoveTag">
            <summary>Deletes a tag from a .ini entry.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.LocatorTypes">
            <summary>
            Defines values for the Type column of the CompLocator, IniLocator, and RegLocator tables.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.LocatorTypes.Directory">
            <summary>Key path is a directory.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.LocatorTypes.FileName">
            <summary>Key path is a file name.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.LocatorTypes.RawValue">
            <summary>Key path is a registry value.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.LocatorTypes.SixtyFourBit">
            <summary>Set this bit to have the installer search the 64-bit portion of the registry.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.RegistryRoot">
            <summary>
            Defines values for the Root column of the Registry, RemoveRegistry, and RegLocator tables.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.RegistryRoot.UserOrMachine">
            <summary>HKEY_CURRENT_USER for a per-user installation,
            or HKEY_LOCAL_MACHINE for a per-machine installation.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.RegistryRoot.ClassesRoot">
            <summary>HKEY_CLASSES_ROOT</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.RegistryRoot.CurrentUser">
            <summary>HKEY_CURRENT_USER</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.RegistryRoot.LocalMachine">
            <summary>HKEY_LOCAL_MACHINE</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.RegistryRoot.Users">
            <summary>HKEY_USERS</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.RemoveFileModes">
            <summary>
            Defines values for the InstallMode column of the RemoveFile table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.RemoveFileModes.None">
            <summary>Never remove.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.RemoveFileModes.OnInstall">
            <summary>Remove when the associated component is being installed (install state = local or source).</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.RemoveFileModes.OnRemove">
            <summary>Remove when the associated component is being removed (install state = absent).</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ServiceAttributes">
            <summary>
            Defines values for the ServiceType, StartType, and ErrorControl columns of the ServiceInstall table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.None">
            <summary>No flags.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.OwnProcess">
            <summary>A Win32 service that runs its own process.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.ShareProcess">
            <summary>A Win32 service that shares a process.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.Interactive">
            <summary>A Win32 service that interacts with the desktop.
            This value cannot be used alone and must be added to either
            <see cref="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.OwnProcess"/> or <see cref="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.ShareProcess"/>.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.AutoStart">
            <summary>Service starts during startup of the system.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.DemandStart">
            <summary>Service starts when the service control manager calls the StartService function.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.Disabled">
            <summary>Specifies a service that can no longer be started.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.ErrorMessage">
            <summary>Logs the error, displays a message box and continues the startup operation.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.ErrorCritical">
            <summary>Logs the error if it is possible and the system is restarted with the last configuration
            known to be good. If the last-known-good configuration is being started, the startup operation fails.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.ErrorControlVital">
            <summary>When combined with other error flags, specifies that the overall install should fail if
            the service cannot be installed into the system.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents">
            <summary>
            Defines values for the Event column of the ServiceControl table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.None">
            <summary>No control events.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.Start">
            <summary>During an install, starts the service during the StartServices action.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.Stop">
            <summary>During an install, stops the service during the StopServices action.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.Delete">
            <summary>During an install, deletes the service during the DeleteServices action.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.UninstallStart">
            <summary>During an uninstall, starts the service during the StartServices action.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.UninstallStop">
            <summary>During an uninstall, stops the service during the StopServices action.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.UninstallDelete">
            <summary>During an uninstall, deletes the service during the DeleteServices action.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.TextStyles">
            <summary>
            Defines values for the StyleBits column of the TextStyle table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TextStyles.Bold">
            <summary>Bold</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TextStyles.Italic">
            <summary>Italic</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TextStyles.Underline">
            <summary>Underline</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TextStyles.Strike">
            <summary>Strike out</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes">
            <summary>
            Defines values for the Attributes column of the Upgrade table.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.MigrateFeatures">
            <summary>Migrates feature states by enabling the logic in the MigrateFeatureStates action.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.OnlyDetect">
            <summary>Detects products and applications but does not remove.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.IgnoreRemoveFailure">
            <summary>Continues installation upon failure to remove a product or application.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.VersionMinInclusive">
            <summary>Detects the range of versions including the value in VersionMin.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.VersionMaxInclusive">
            <summary>Dectects the range of versions including the value in VersionMax.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.LanguagesExclusive">
            <summary>Detects all languages, excluding the languages listed in the Language column.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ColumnInfo">
            <summary>
            Defines a single column of a table in an installer database.
            </summary>
            <remarks>Once created, a ColumnInfo object is immutable.</remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnInfo.#ctor(System.String,System.String)">
            <summary>
            Creates a new ColumnInfo object from a column definition.
            </summary>
            <param name="name">name of the column</param>
            <param name="columnDefinition">column definition string</param>
            <seealso cref="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.ColumnDefinitionString"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnInfo.#ctor(System.String,System.Type,System.Int32,System.Boolean)">
            <summary>
            Creates a new ColumnInfo object from a list of parameters.
            </summary>
            <param name="name">name of the column</param>
            <param name="type">type of the column; must be one of the following:
            Int16, Int32, String, or Stream</param>
            <param name="size">the maximum number of characters for String columns;
            ignored for other column types</param>
            <param name="isRequired">true if the column is required to have a non-null value</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnInfo.#ctor(System.String,System.Type,System.Int32,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Creates a new ColumnInfo object from a list of parameters.
            </summary>
            <param name="name">name of the column</param>
            <param name="type">type of the column; must be one of the following:
            Int16, Int32, String, or Stream</param>
            <param name="size">the maximum number of characters for String columns;
            ignored for other column types</param>
            <param name="isRequired">true if the column is required to have a non-null value</param>
            <param name="isTemporary">true to if the column is only in-memory and
            not persisted with the database</param>
            <param name="isLocalizable">for String columns, indicates the column
            is localizable; ignored for other column types</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnInfo.ToString">
            <summary>
            Gets the name of the column.
            </summary>
            <returns>Name of the column.</returns>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.Name">
            <summary>
            Gets the name of the column.
            </summary>
            <value>name of the column</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.Type">
            <summary>
            Gets the type of the column as a System.Type.  This is one of the following: Int16, Int32, String, or Stream
            </summary>
            <value>type of the column</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.DBType">
            <summary>
            Gets the type of the column as an integer that can be cast to a System.Data.DbType.  This is one of the following: Int16, Int32, String, or Binary
            </summary>
            <value>equivalent DbType of the column as an integer</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.Size">
            <summary>
            Gets the size of the column.
            </summary>
            <value>The size of integer columns this is either 2 or 4.  For string columns this is the maximum
            recommended length of the string, or 0 for unlimited length.  For stream columns, 0 is returned.</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.IsRequired">
            <summary>
            Gets a value indicating whether the column must be non-null when inserting a record.
            </summary>
            <value>required status of the column</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.IsTemporary">
            <summary>
            Gets a value indicating whether the column is temporary. Temporary columns are not persisted
            when the database is saved to disk.
            </summary>
            <value>temporary status of the column</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.IsLocalizable">
            <summary>
            Gets a value indicating whether the column is a string column that is localizable.
            </summary>
            <value>localizable status of the column</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.SqlCreateString">
            <summary>
            Gets an SQL fragment that can be used to create this column within a CREATE TABLE statement.
            </summary>
            <value>SQL fragment to be used for creating the column</value>
            <remarks><p>
            Examples:
            <list type="bullet">
            <item>LONG</item>
            <item>SHORT TEMPORARY</item>
            <item>CHAR(0) LOCALIZABLE</item>
            <item>CHAR(72) NOT NULL LOCALIZABLE</item>
            <item>OBJECT</item>
            </list>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.ColumnDefinitionString">
            <summary>
            Gets a short string defining the type and size of the column. 
            </summary>
            <value>
            The definition string consists
            of a single letter representing the data type followed by the width of the column (in characters
            when applicable, bytes otherwise). A width of zero designates an unbounded width (for example,
            long text fields and streams). An uppercase letter indicates that null values are allowed in
            the column.
            </value>
            <remarks><p>
            <list>
            <item>s? - String, variable length (?=1-255)</item>
            <item>s0 - String, variable length</item>
            <item>i2 - Short integer</item>
            <item>i4 - Long integer</item>
            <item>v0 - Binary Stream</item>
            <item>g? - Temporary string (?=0-255)</item>
            <item>j? - Temporary integer (?=0,1,2,4)</item>
            <item>l? - Localizable string, variable length (?=1-255)</item>
            <item>l0 - Localizable string, variable length</item>
            </list>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection">
            <summary>
            Accessor for information about components within the context of an installation session.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection.Contains(System.String)">
            <summary>
            Checks if the collection contains a component.
            </summary>
            <param name="component">name of the component</param>
            <returns>true if the component is in the collection, else false</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection.CopyTo(Microsoft.Deployment.WindowsInstaller.ComponentInfo[],System.Int32)">
            <summary>
            Copies the features into an array.
            </summary>
            <param name="array">array that receives the features</param>
            <param name="arrayIndex">offset into the array</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection.GetEnumerator">
            <summary>
            Enumerates the components in the collection.
            </summary>
            <returns>an enumerator over all features in the collection</returns>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection.Item(System.String)">
            <summary>
            Gets information about a component within the context of an installation session.
            </summary>
            <param name="component">name of the component</param>
            <returns>component object</returns>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection.Count">
            <summary>
            Gets the number of components defined for the product.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ComponentInfo">
            <summary>
            Provides access to information about a component within the context of an installation session.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInfo.GetCost(Microsoft.Deployment.WindowsInstaller.InstallState)">
            <summary>
            Gets disk space per drive required to install a component.
            </summary>
            <param name="installState">Requested component state</param>
            <returns>A list of InstallCost structures, specifying the cost for each drive for the component</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumcomponentcosts.asp">MsiEnumComponentCosts</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInfo.Name">
            <summary>
            Gets the name of the component (primary key in the Component table).
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInfo.CurrentState">
            <summary>
            Gets the current install state of the designated Component.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentException">an unknown Component was requested</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetcomponentstate.asp">MsiGetComponentState</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInfo.RequestState">
            <summary>
            Gets or sets the action state of the designated Component.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentException">an unknown Component was requested</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetcomponentstate.asp">MsiGetComponentState</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetcomponentstate.asp">MsiSetComponentState</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ComponentInstallation">
            <summary>
            Represents an instance of a registered component.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallationPart">
            <summary>
            Subclasses of this abstract class represent an instance
            of a registered feature or component.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallationPart.Product">
            <summary>
            Gets the product that this item is a part of.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallationPart.State">
            <summary>
            Gets the current installation state of the item.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.#ctor(System.String)">
            <summary>
            Creates a new ComponentInstallation, automatically detecting the
            product that the component is a part of.
            </summary>
            <param name="componentCode">component GUID</param>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproductcode.asp">MsiGetProductCode</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.#ctor(System.String,System.String)">
            <summary>
            Creates a new ComponentInstallation for a component installed by a
            specific product.
            </summary>
            <param name="componentCode">component GUID</param>
            <param name="productCode">ProductCode GUID</param>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.AllComponents">
            <summary>
            Gets the set of installed components for all products.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumcomponents.asp">MsiEnumComponents</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.ComponentCode">
            <summary>
            Gets the component code (GUID) of the component.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.ClientProducts">
            <summary>
            Gets all client products of a specified component.
            </summary>
            <returns>enumeration over all client products of the component</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
            <remarks><p>
            Because clients are not ordered, any new component has an arbitrary index.
            This means that the property may return clients in any order.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumclients.asp">MsiEnumClients</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.State">
            <summary>
            Gets the installed state of a component.
            </summary>
            <returns>the installed state of the component, or InstallState.Unknown
            if this component is not part of a product</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetcomponentpath.asp">MsiGetComponentPath</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.Path">
            <summary>
            Gets the full path to an installed component. If the key path for the component is a
            registry key then the registry key is returned.
            </summary>
            <returns>The file or registry keypath to the component, or null if the component is not available.</returns>
            <exception cref="T:System.ArgumentException">An unknown product or component was specified</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
            <remarks><p>
            If the component is a registry key, the registry roots are represented numerically.
            For example, a registry path of "HKEY_CURRENT_USER\SOFTWARE\Microsoft" would be returned
            as "01:\SOFTWARE\Microsoft". The registry roots returned are defined as follows:
            HKEY_CLASSES_ROOT=00, HKEY_CURRENT_USER=01, HKEY_LOCAL_MACHINE=02, HKEY_USERS=03,
            HKEY_PERFORMANCE_DATA=04
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetcomponentpath.asp">MsiGetComponentPath</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msilocatecomponent.asp">MsiLocateComponent</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.Qualifiers">
            <summary>
            Gets the set of registered qualifiers for the component.
            </summary>
            <returns>Enumeration of the qulifiers for the component.</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
            <remarks><p>
            Because qualifiers are not ordered, any new qualifier has an arbitrary index,
            meaning the function can return qualifiers in any order.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumcomponentqualifiers.asp">MsiEnumComponentQualifiers</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.Qualifier">
            <summary>
            Holds data about a component qualifier.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumcomponentqualifiers.asp">MsiEnumComponentQualifiers</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.Qualifier.QualifierCode">
            <summary>
            Gets the qualifier code.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.Qualifier.Data">
            <summary>
            Gets the qualifier data.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.CustomActionAttribute">
            <summary>
            Marks a method as a custom action entry point.
            </summary>
            <remarks><p>
            A custom action method must be defined as public and static,
            take a single <see cref="T:Microsoft.Deployment.WindowsInstaller.Session"/> object as a parameter,
            and return an <see cref="T:Microsoft.Deployment.WindowsInstaller.ActionResult"/> enumeration value.
            </p></remarks>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionAttribute.name">
            <summary>
            Name of the custom action entrypoint, or null if the same as the method name.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionAttribute.#ctor">
            <summary>
            Marks a method as a custom action entry point.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionAttribute.#ctor(System.String)">
            <summary>
            Marks a method as a custom action entry point.
            </summary>
            <param name="name">Name of the function to be exported,
            defaults to the name of this method</param>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionAttribute.Name">
            <summary>
            Gets or sets the name of the custom action entrypoint. A null
            value defaults to the name of the method.
            </summary>
            <value>name of the custom action entrypoint, or null if none was specified</value>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.CustomActionData">
            <summary>
            Contains a collection of key-value pairs suitable for passing between
            immediate and deferred/rollback/commit custom actions.
            </summary>
            <remarks>
            Call the <see cref="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ToString"/> method to get a string
            suitable for storing in a property and reconstructing the custom action data later.
            </remarks>
            <seealso cref="P:Microsoft.Deployment.WindowsInstaller.Session.CustomActionData"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Session.DoAction(System.String,Microsoft.Deployment.WindowsInstaller.CustomActionData)"/>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionData.PropertyName">
            <summary>
            "CustomActionData" literal property name.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.#ctor">
            <summary>
            Creates a new empty custom action data object.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.#ctor(System.String)">
            <summary>
            Reconstructs a custom action data object from data that was previously
            persisted in a string.
            </summary>
            <param name="keyValueList">Previous output from <see cref="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ToString"/>.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Add(System.String,System.String)">
            <summary>
            Adds a key and value to the data collection.
            </summary>
            <param name="key">Case-sensitive data key.</param>
            <param name="value">Data value (may be null).</param>
            <exception cref="T:System.ArgumentException">the key does not consist solely of letters,
            numbers, and the period, underscore, and space characters.</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.AddObject``1(System.String,``0)">
            <summary>
            Adds a value to the data collection, using XML serialization to persist the object as a string.
            </summary>
            <param name="key">Case-sensitive data key.</param>
            <param name="value">Data value (may be null).</param>
            <exception cref="T:System.ArgumentException">the key does not consist solely of letters,
            numbers, and the period, underscore, and space characters.</exception>
            <exception cref="T:System.NotSupportedException">The value type does not support XML serialization.</exception>
            <exception cref="T:System.InvalidOperationException">The value could not be serialized.</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.GetObject``1(System.String)">
            <summary>
            Gets a value from the data collection, using XML serialization to load the object from a string.
            </summary>
            <param name="key">Case-sensitive data key.</param>
            <exception cref="T:System.InvalidOperationException">The value could not be deserialized.</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ContainsKey(System.String)">
            <summary>
            Determines whether the data contains an item with the specified key.
            </summary>
            <param name="key">Case-sensitive data key.</param>
            <returns>true if the data contains an item with the key; otherwise, false</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Remove(System.String)">
            <summary>
            Removes the item with the specified key from the data.
            </summary>
            <param name="key">Case-sensitive data key.</param>
            <returns>true if the item was successfully removed from the data;
            false if an item with the specified key was not found</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.TryGetValue(System.String,System.String@)">
            <summary>
            Gets the value with the specified key.
            </summary>
            <param name="key">Case-sensitive data key.</param>
            <param name="value">Value associated with the specified key, or
            null if an item with the specified key was not found</param>
            <returns>true if the data contains an item with the specified key; otherwise, false.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Add(System.Collections.Generic.KeyValuePair{System.String,System.String})">
            <summary>
            Adds an item with key and value to the data collection.
            </summary>
            <param name="item">Case-sensitive data key, with a data value that may be null.</param>
            <exception cref="T:System.ArgumentException">the key does not consist solely of letters,
            numbers, and the period, underscore, and space characters.</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Clear">
            <summary>
            Removes all items from the data.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Contains(System.Collections.Generic.KeyValuePair{System.String,System.String})">
            <summary>
            Determines whether the data contains a specified item.
            </summary>
            <param name="item">The data item to locate.</param>
            <returns>true if the data contains the item; otherwise, false</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.Int32)">
            <summary>
            Copies the data to an array, starting at a particular array index.
            </summary>
            <param name="array">Destination array.</param>
            <param name="arrayIndex">Index in the array at which copying begins.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Remove(System.Collections.Generic.KeyValuePair{System.String,System.String})">
            <summary>
            Removes an item from the data.
            </summary>
            <param name="item">The item to remove.</param>
            <returns>true if the item was successfully removed from the data;
            false if the item was not found</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>An enumerator that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>An enumerator that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ToString">
            <summary>
            Gets a string representation of the data suitable for persisting in a property.
            </summary>
            <returns>Data string in the form "Key1=Value1;Key2=Value2"</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ValidateKey(System.String)">
            <summary>
            Ensures that a key contains valid characters.
            </summary>
            <param name="key">key to be validated</param>
            <exception cref="T:System.ArgumentException">the key does not consist solely of letters,
            numbers, and the period, underscore, and space characters.</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Serialize``1(``0)">
            <summary>
            Serializes a value into an XML string.
            </summary>
            <typeparam name="T">Type of the value.</typeparam>
            <param name="value">Value to be serialized.</param>
            <returns>Serialized value data as a string.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Deserialize``1(System.String)">
            <summary>
            Deserializes a value from an XML string.
            </summary>
            <typeparam name="T">Expected type of the value.</typeparam>
            <param name="value">Serialized value data.</param>
            <returns>Deserialized value object.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Escape(System.String)">
            <summary>
            Escapes a value string by doubling any data-separator (semicolon) characters.
            </summary>
            <param name="value"></param>
            <returns>Escaped value string</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Unescape(System.String)">
            <summary>
            Unescapes a value string by undoubling any doubled data-separator (semicolon) characters.
            </summary>
            <param name="value"></param>
            <returns>Unescaped value string</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Parse(System.String)">
            <summary>
            Loads key-value pairs from a string into the data collection.
            </summary>
            <param name="keyValueList">key-value pair list of the form returned by <see cref="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ToString"/></param>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionData.Keys">
            <summary>
            Gets a collection object containing all the keys of the data.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionData.Values">
            <summary>
            Gets a collection containing all the values of the data.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionData.Item(System.String)">
            <summary>
            Gets or sets a data value with a specified key.
            </summary>
            <param name="key">Case-sensitive data key.</param>
            <exception cref="T:System.ArgumentException">the key does not consist solely of letters,
            numbers, and the period, underscore, and space characters.</exception>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionData.Count">
            <summary>
            Gets the number of items in the data.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionData.IsReadOnly">
            <summary>
            Gets a value indicating whether the data is read-only.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.CustomActionProxy">
            <summary>
            Managed-code portion of the custom action proxy.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionProxy.InvokeCustomAction(System.Int32,System.String,System.IntPtr)">
            <summary>
            Invokes a managed custom action method.
            </summary>
            <param name="sessionHandle">Integer handle to the installer session.</param>
            <param name="entryPoint">Name of the custom action entrypoint. This must
            either map to an entrypoint definition in the <c>customActions</c>
            config section, or be an explicit entrypoint of the form:
            &quot;AssemblyName!Namespace.Class.Method&quot;</param>
            <param name="remotingDelegatePtr">Pointer to a delegate used to
            make remote API calls, if this custom action is running out-of-proc.</param>
            <returns>The value returned by the custom action method,
            or ERROR_INSTALL_FAILURE if the custom action could not be invoked.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionProxy.DebugBreakEnabled(System.String[])">
            <summary>
            Checks the "MMsiBreak" environment variable for any matching custom action names.
            </summary>
            <param name="names">List of names to search for in the environment
            variable string.</param>
            <returns>True if a match was found, else false.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionProxy.FindEntryPoint(Microsoft.Deployment.WindowsInstaller.Session,System.String,System.String@,System.String@,System.String@)">
            <summary>
            Locates and parses an entrypoint mapping in CustomAction.config.
            </summary>
            <param name="session">Installer session handle, just used for logging.</param>
            <param name="entryPoint">Custom action entrypoint name: the key value
            in an item in the <c>customActions</c> section of the config file.</param>
            <param name="assemblyName">Returned display name of the assembly from
            the entrypoint mapping.</param>
            <param name="className">Returned class name of the entrypoint mapping.</param>
            <param name="methodName">Returned method name of the entrypoint mapping.</param>
            <returns>True if the entrypoint was found, false if not or if some error
            occurred.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionProxy.GetCustomActionMethod(Microsoft.Deployment.WindowsInstaller.Session,System.String,System.String,System.String)">
            <summary>
            Uses reflection to load the assembly and class and find the method.
            </summary>
            <param name="session">Installer session handle, just used for logging.</param>
            <param name="assemblyName">Display name of the assembly containing the
            custom action method.</param>
            <param name="className">Fully-qualified name of the class containing the
            custom action method.</param>
            <param name="methodName">Name of the custom action method.</param>
            <returns>The method, or null if not found.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionProxy.MethodHasCustomActionSignature(System.Reflection.MethodInfo)">
            <summary>
            Checks if a method has the right return and paramater types
            for a custom action, and that it is marked by a CustomActionAttribute.
            </summary>
            <param name="method">Method to be checked.</param>
            <returns>True if the method is a valid custom action, else false.</returns>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.Database">
            <summary>
            Accesses a Windows Installer database.
            </summary>
            <remarks><p>
            The <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Commit"/> method must be called before the Database is closed to write out all
            persistent changes. If the Commit method is not called, the installer performs an implicit
            rollback upon object destruction.
            </p><p>
            The client can use the following procedure for data access:<list type="number">
            <item><description>Obtain a Database object using one of the Database constructors.</description></item> 
            <item><description>Initiate a query using a SQL string by calling the <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.OpenView(System.String,System.Object[])"/>
            	method of the Database.</description></item> 
            <item><description>Set query parameters in a <see cref="T:Microsoft.Deployment.WindowsInstaller.Record"/> and execute the database
            	query by calling the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Execute(Microsoft.Deployment.WindowsInstaller.Record)"/> method of the <see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>. This
            	produces a result that can be fetched or updated.</description></item> 
            <item><description>Call the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/> method of the View repeatedly to return
            	Records.</description></item> 
            <item><description>Update database rows of a Record object obtained by the Fetch method using
            	one of the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> methods of the View.</description></item> 
            <item><description>Release the query and any unfetched records by calling the <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>
            	method of the View.</description></item> 
            <item><description>Persist any database updates by calling the Commit method of the Database.
            	</description></item> 
            </list>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallerHandle">
            <summary>
            Base class for Windows Installer handle types (Database, View, Record, SummaryInfo).
            </summary>
            <remarks><p>
            These classes implement the <see cref="T:System.IDisposable"/> interface, because they
            hold unmanaged resources (MSI handles) that should be properly disposed
            when no longer needed.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.#ctor(System.IntPtr,System.Boolean)">
            <summary>
            Constructs a handle object from a native integer handle.
            </summary>
            <param name="handle">Native integer handle.</param>
            <param name="ownsHandle">true to close the handle when this object is disposed or finalized</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Dispose">
            <summary>
            Closes the handle.  After closing a handle, further method calls may throw an <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
            </summary>
            <remarks><p>
            The finalizer of this class will NOT close the handle if it is still open,
            because finalization can run on a separate thread from the application,
            resulting in potential problems if handles are closed from that thread.
            It is best that the handle be closed manually as soon as it is no longer needed,
            as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiclosehandle.asp">MsiCloseHandle</a>
            </p></remarks>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close">
            <summary>
            Closes the handle.  After closing a handle, further method calls may throw an <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
            </summary>
            <remarks><p>
            The finalizer of this class will NOT close the handle if it is still open,
            because finalization can run on a separate thread from the application,
            resulting in potential problems if handles are closed from that thread.
            It is best that the handle be closed manually as soon as it is no longer needed,
            as leaving lots of unused handles open can degrade performance.
            </p><p>
            This method is merely an alias for the <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Dispose"/> method.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiclosehandle.asp">MsiCloseHandle</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Equals(System.Object)">
            <summary>
            Tests whether this handle object is equal to another handle object.  Two handle objects are equal
            if their types are the same and their native integer handles are the same.
            </summary>
            <param name="obj">The handle object to compare with the current handle object.</param>
            <returns>true if the specified handle object is equal to the current handle object; otherwise false</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.GetHashCode">
            <summary>
            Gets a hash value for the handle object.
            </summary>
            <returns>A hash code for the handle object.</returns>
            <remarks><p>
            The hash code is derived from the native integer handle.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Dispose(System.Boolean)">
            <summary>
            Closes the handle.  After closing a handle, further method calls may throw an <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
            </summary>
            <param name="disposing">If true, the method has been called directly or indirectly by a user's code,
            so managed and unmanaged resources will be disposed. If false, the method has been called by the 
            runtime from inside the finalizer, and only unmanaged resources will be disposed.</param>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Handle">
            <summary>
            Gets the native integer handle.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallerHandle.IsClosed">
            <summary>
            Checks if the handle is closed. When closed, method calls on the handle object may throw an <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Sync">
            <summary>
            Gets an object that can be used internally for safe syncronization.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.#ctor(System.String)">
            <summary>
            Opens an existing database in read-only mode.
            </summary>
            <param name="filePath">Path to the database file.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
            <remarks><p>
            Because this constructor initiates database access, it cannot be used with a
            running installation.
            </p><p>
            The Database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopendatabase.asp">MsiOpenDatabase</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.#ctor(System.String,System.String)">
            <summary>
            Opens an existing database with another database as output.
            </summary>
            <param name="filePath">Path to the database to be read.</param>
            <param name="outputPath">Open mode for the database</param>
            <returns>Database object representing the created or opened database</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
            <remarks><p>
            When a database is opened as the output of another database, the summary information stream
            of the output database is actually a read-only mirror of the original database and thus cannot
            be changed. Additionally, it is not persisted with the database. To create or modify the
            summary information for the output database it must be closed and re-opened.
            </p><p>
            The Database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            The database is opened in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.CreateDirect"/> mode, and will be
            automatically commited when it is closed.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopendatabase.asp">MsiOpenDatabase</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode)">
            <summary>
            Opens an existing database or creates a new one.
            </summary>
            <param name="filePath">Path to the database file. If an empty string
            is supplied, a temporary database is created that is not persisted.</param>
            <param name="mode">Open mode for the database</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
            <remarks><p>
            Because this constructor initiates database access, it cannot be used with a
            running installation.
            </p><p>
            The database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            The finalizer will close the handle if it is still open, however due to the nondeterministic
            nature of finalization it is best that the handle be closed manually as soon as it is no
            longer needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            A database opened in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.CreateDirect"/> or
            <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Direct"/> mode will be automatically commited when it is
            closed. However a database opened in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Create"/> or
            <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Transact"/> mode must have the <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Commit"/> method
            called before it is closed, otherwise no changes will be persisted.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopendatabase.asp">MsiOpenDatabase</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.#ctor(System.IntPtr,System.Boolean,System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode)">
            <summary>
            Creates a new database from an MSI handle.
            </summary>
            <param name="handle">Native MSI database handle.</param>
            <param name="ownsHandle">True if the handle should be closed
            when the database object is disposed</param>
            <param name="filePath">Path of the database file, if known</param>
            <param name="openMode">Mode the handle was originally opened in</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.FromHandle(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new Database object from an integer database handle.
            </summary>
            <remarks><p>
            This method is only provided for interop purposes.  A Database object
            should normally be obtained from <see cref="P:Microsoft.Deployment.WindowsInstaller.Session.Database"/> or
            a public Database constructor.
            </p></remarks>
            <param name="handle">Integer database handle</param>
            <param name="ownsHandle">true to close the handle when this object is disposed</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.DeleteOnClose(System.String)">
            <summary>
            Schedules a file or directory for deletion after the database handle is closed.
            </summary>
            <param name="path">File or directory path to be deleted. All files and subdirectories
            under a directory are deleted.</param>
            <remarks><p>
            Once an item is scheduled, it cannot be unscheduled.
            </p><p>
            The items cannot be deleted if the Database object is auto-disposed by the
            garbage collector; the handle must be explicitly closed.
            </p><p>
            Files which are read-only or otherwise locked cannot be deleted,
            but they will not cause an exception to be thrown.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Merge(Microsoft.Deployment.WindowsInstaller.Database,System.String)">
            <summary>
            Merges another database with this database.
            </summary>
            <param name="otherDatabase">The database to be merged into this database</param>
            <param name="errorTable">Optional name of table to contain the names of the tables containing
            merge conflicts, the number of conflicting rows within the table, and a reference to the table
            with the merge conflict.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.MergeException">merge failed due to a schema difference or data conflict</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Merge does not copy over embedded cabinet files or embedded transforms from the
            reference database into the target database. Embedded data streams that are listed in the
            Binary table or Icon table are copied from the reference database to the target database.
            Storage embedded in the reference database are not copied to the target database.
            </p><p>
            The Merge method merges the data of two databases. These databases must have the same
            codepage. The merge fails if any tables or rows in the databases conflict. A conflict exists
            if the data in any row in the first database differs from the data in the corresponding row
            of the second database. Corresponding rows are in the same table of both databases and have
            the same primary key in both databases. The tables of non-conflicting databases must have
            the same number of primary keys, same number of columns, same column types, same column names,
            and the same data in rows with identical primary keys. Temporary columns however don't matter
            in the column count and corresponding tables can have a different number of temporary columns
            without creating conflict as long as the persistent columns match.
            </p><p>
            If the number, type, or name of columns in corresponding tables are different, the
            schema of the two databases are incompatible and the installer will stop processing tables
            and the merge fails. The installer checks that the two databases have the same schema before
            checking for row merge conflicts. If the schemas are incompatible, the databases have be
            modified.
            </p><p>
            If the data in particular rows differ, this is a row merge conflict, the merge fails
            and creates a new table with the specified name. The first column of this table is the name
            of the table having the conflict. The second column gives the number of rows in the table
            having the conflict.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabasemerge.asp">MsiDatabaseMerge</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Merge(Microsoft.Deployment.WindowsInstaller.Database)">
            <summary>
            Merges another database with this database.
            </summary>
            <param name="otherDatabase">The database to be merged into this database</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.MergeException">merge failed due to a schema difference or data conflict</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            MsiDatabaseMerge does not copy over embedded cabinet files or embedded transforms from
            the reference database into the target database. Embedded data streams that are listed in
            the Binary table or Icon table are copied from the reference database to the target database.
            Storage embedded in the reference database are not copied to the target database.
            </p><p>
            The Merge method merges the data of two databases. These databases must have the same
            codepage. The merge fails if any tables or rows in the databases conflict. A conflict exists
            if the data in any row in the first database differs from the data in the corresponding row
            of the second database. Corresponding rows are in the same table of both databases and have
            the same primary key in both databases. The tables of non-conflicting databases must have
            the same number of primary keys, same number of columns, same column types, same column names,
            and the same data in rows with identical primary keys. Temporary columns however don't matter
            in the column count and corresponding tables can have a different number of temporary columns
            without creating conflict as long as the persistent columns match.
            </p><p>
            If the number, type, or name of columns in corresponding tables are different, the
            schema of the two databases are incompatible and the installer will stop processing tables
            and the merge fails. The installer checks that the two databases have the same schema before
            checking for row merge conflicts. If the schemas are incompatible, the databases have be
            modified.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabasemerge.asp">MsiDatabaseMerge</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.IsTablePersistent(System.String)">
            <summary>
            Checks whether a table exists and is persistent in the database.
            </summary>
            <param name="table">The table to the checked</param>
            <returns>true if the table exists and is persistent in the database; false otherwise</returns>
            <exception cref="T:System.ArgumentException">the table is unknown</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            To check whether a table exists regardless of persistence,
            use <see cref="M:Microsoft.Deployment.WindowsInstaller.TableCollection.Contains(System.String)"/>.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseistablepersistent.asp">MsiDatabaseIsTablePersistent</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.IsColumnPersistent(System.String,System.String)">
            <summary>
            Checks whether a table contains a persistent column with a given name.
            </summary>
            <param name="table">The table to the checked</param>
            <param name="column">The name of the column to be checked</param>
            <returns>true if the column exists in the table; false if the column is temporary or does not exist.</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            To check whether a column exists regardless of persistence,
            use <see cref="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Contains(System.String)"/>.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.CountRows(System.String)">
            <summary>
            Gets the count of all rows in the table.
            </summary>
            <param name="table">Name of the table whose rows are to be counted</param>
            <returns>The count of all rows in the table</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.CountRows(System.String,System.String)">
            <summary>
            Gets the count of all rows in the table that satisfy a given condition.
            </summary>
            <param name="table">Name of the table whose rows are to be counted</param>
            <param name="where">Conditional expression, such as could be placed on the end of a SQL WHERE clause</param>
            <returns>The count of all rows in the table satisfying the condition</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL WHERE syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Commit">
            <summary>
            Finalizes the persistent form of the database. All persistent data is written
            to the writeable database, and no temporary columns or rows are written.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            For a database open in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.ReadOnly"/> mode, this method has no effect.
            </p><p>
            For a database open in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.CreateDirect"/> or <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Direct"/>
            mode, it is not necessary to call this method because the database will be automatically committed
            when it is closed. However this method may be called at any time to persist the current state of tables
            loaded into memory.
            </p><p>
            For a database open in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Create"/> or <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Transact"/>
            mode, no changes will be persisted until this method is called. If the database object is closed without
            calling this method, the database file remains unmodified.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabasecommit.asp">MsiDatabaseCommit</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Export(System.String,System.String)">
            <summary>
            Copies the structure and data from a specified table to a text archive file.
            </summary>
            <param name="table">Name of the table to be exported</param>
            <param name="exportFilePath">Path to the file to be created</param>
            <exception cref="T:System.IO.FileNotFoundException">the file path is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseexport.asp">MsiDatabaseExport</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Import(System.String)">
            <summary>
            Imports a database table from a text archive file, dropping any existing table.
            </summary>
            <param name="importFilePath">Path to the file to be imported. 
            The table name is specified within the file.</param>
            <exception cref="T:System.IO.FileNotFoundException">the file path is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseimport.asp">MsiDatabaseImport</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExportAll(System.String)">
            <summary>
            Exports all database tables, streams, and summary information to archive files.
            </summary>
            <param name="directoryPath">Path to the directory where archive files will be created</param>
            <exception cref="T:System.IO.FileNotFoundException">the directory path is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            The directory will be created if it does not already exist.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseexport.asp">MsiDatabaseExport</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ImportAll(System.String)">
            <summary>
            Imports all database tables, streams, and summary information from archive files.
            </summary>
            <param name="directoryPath">Path to the directory from which archive files will be imported</param>
            <exception cref="T:System.IO.FileNotFoundException">the directory path is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseimport.asp">MsiDatabaseImport</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.CreateRecord(System.Int32)">
            <summary>
            Creates a new record object with the requested number of fields.
            </summary>
            <param name="fieldCount">Required number of fields, which may be 0.
            The maximum number of fields in a record is limited to 65535.</param>
            <returns>A new record object that can be used with the database.</returns>
            <remarks><p>
            This method is equivalent to directly calling the <see cref="T:Microsoft.Deployment.WindowsInstaller.Record"/>
            constructor in all cases outside of a custom action context. When in a
            custom action session, this method allows creation of a record that can
            work with a database other than the session database.
            </p><p>
            The Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicreaterecord.asp">MsiCreateRecord</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ToString">
            <summary>
            Returns the file path of this database, or the handle value if a file path was not specified.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Dispose(System.Boolean)">
            <summary>
            Closes the database handle.  After closing a handle, further method calls may throw <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
            </summary>
            <param name="disposing">If true, the method has been called directly or
            indirectly by a user's code, so managed and unmanaged resources will be
            disposed. If false, only unmanaged resources will be disposed.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.OpenView(System.String,System.Object[])">
            <summary>
            Gets a View object representing the query specified by a SQL string.
            </summary>
            <param name="sqlFormat">SQL query string, which may contain format items</param>
            <param name="args">Zero or more objects to format</param>
            <returns>A View object representing the query specified by a SQL string</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            The <paramref name="sqlFormat"/> parameter is formatted using <see cref="M:System.String.Format(System.String,System.Object[])"/>.
            </p><p>
            The View object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Execute(System.String,System.Object[])">
            <summary>
            Executes the query specified by a SQL string.  The query may not be a SELECT statement.
            </summary>
            <param name="sqlFormat">SQL query string, which may contain format items</param>
            <param name="args">Zero or more objects to format</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            The <paramref name="sqlFormat"/> parameter is formatted using
            <see cref="M:System.String.Format(System.String,System.Object[])"/>.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Execute(System.String,Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Executes the query specified by a SQL string.  The query may not be a SELECT statement.
            </summary>
            <param name="sql">SQL query string</param>
            <param name="record">Optional Record object containing the values that replace
            the parameter tokens (?) in the SQL query.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteQuery(System.String,System.Object[])">
            <summary>
            Executes the specified SQL SELECT query and returns all results.
            </summary>
            <param name="sqlFormat">SQL query string, which may contain format items</param>
            <param name="args">Zero or more objects to format</param>
            <returns>All results combined into an array</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            The <paramref name="sqlFormat"/> parameter is formatted using
            <see cref="M:System.String.Format(System.String,System.Object[])"/>.
            </p><p>
            Multiple rows columns will be collapsed into a single one-dimensional list.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteQuery(System.String,Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Executes the specified SQL SELECT query and returns all results.
            </summary>
            <param name="sql">SQL SELECT query string</param>
            <param name="record">Optional Record object containing the values that replace
            the parameter tokens (?) in the SQL query.</param>
            <returns>All results combined into an array</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Multiple rows columns will be collapsed into a single one-dimensional list.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteIntegerQuery(System.String,System.Object[])">
            <summary>
            Executes the specified SQL SELECT query and returns all results as integers.
            </summary>
            <param name="sqlFormat">SQL query string, which may contain format items</param>
            <param name="args">Zero or more objects to format</param>
            <returns>All results combined into an array</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            The <paramref name="sqlFormat"/> parameter is formatted using
            <see cref="M:System.String.Format(System.String,System.Object[])"/>.
            </p><p>
            Multiple rows columns will be collapsed into a single one-dimensional list.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteIntegerQuery(System.String,Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Executes the specified SQL SELECT query and returns all results as integers.
            </summary>
            <param name="sql">SQL SELECT query string</param>
            <param name="record">Optional Record object containing the values that replace
            the parameter tokens (?) in the SQL query.</param>
            <returns>All results combined into an array</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Multiple rows columns will be collapsed into a single one-dimensional list.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteStringQuery(System.String,System.Object[])">
            <summary>
            Executes the specified SQL SELECT query and returns all results as strings.
            </summary>
            <param name="sqlFormat">SQL query string, which may contain format items</param>
            <param name="args">Zero or more objects to format</param>
            <returns>All results combined into an array</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            The <paramref name="sqlFormat"/> parameter is formatted using
            <see cref="M:System.String.Format(System.String,System.Object[])"/>.
            </p><p>
            Multiple rows columns will be collapsed into a single on-dimensional list.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteStringQuery(System.String,Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Executes the specified SQL SELECT query and returns all results as strings.
            </summary>
            <param name="sql">SQL SELECT query string</param>
            <param name="record">Optional Record object containing the values that replace
            the parameter tokens (?) in the SQL query.</param>
            <returns>All results combined into an array</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Multiple rows columns will be collapsed into a single on-dimensional list.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteScalar(System.String,System.Object[])">
            <summary>
            Executes the specified SQL SELECT query and returns a single result.
            </summary>
            <param name="sqlFormat">SQL query string, which may contain format items</param>
            <param name="args">Zero or more objects to format</param>
            <returns>First field of the first result</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed
            or the query returned 0 results</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            The <paramref name="sqlFormat"/> parameter is formatted using
            <see cref="M:System.String.Format(System.String,System.Object[])"/>.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteScalar(System.String,Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Executes the specified SQL SELECT query and returns a single result.
            </summary>
            <param name="sql">SQL SELECT query string</param>
            <param name="record">Optional Record object containing the values that replace
            the parameter tokens (?) in the SQL query.</param>
            <returns>First field of the first result</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed
            or the query returned 0 results</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.GenerateTransform(Microsoft.Deployment.WindowsInstaller.Database,System.String)">
            <summary>
            Creates a transform that, when applied to the object database, results in the reference database.
            </summary>
            <param name="referenceDatabase">Database that does not include the changes</param>
            <param name="transformFile">Name of the generated transform file, or null to only
            check whether or not the two database are identical</param>
            <returns>true if a transform is generated, or false if a transform is not generated
            because there are no differences between the two databases.</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform could not be generated</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">a Database handle is invalid</exception>
            <remarks><p>
            A transform can add non-primary key columns to the end of a table. A transform cannot
            be created that adds primary key columns to a table. A transform cannot be created that
            changes the order, names, or definitions of columns.
            </p><p>
            If the transform is to be applied during an installation you must use the
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.CreateTransformSummaryInfo(Microsoft.Deployment.WindowsInstaller.Database,System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors,Microsoft.Deployment.WindowsInstaller.TransformValidations)"/> method to populate the
            summary information stream.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabasegeneratetransform.asp">MsiDatabaseGenerateTransform</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.CreateTransformSummaryInfo(Microsoft.Deployment.WindowsInstaller.Database,System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors,Microsoft.Deployment.WindowsInstaller.TransformValidations)">
            <summary>
            Creates and populates the summary information stream of an existing transform file, and
            fills in the properties with the base and reference ProductCode and ProductVersion.
            </summary>
            <param name="referenceDatabase">Database that does not include the changes</param>
            <param name="transformFile">Name of the generated transform file</param>
            <param name="errors">Error conditions that should be suppressed
            when the transform is applied</param>
            <param name="validations">Defines which properties should be validated
            to verify that this transform can be applied to a database.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform summary info could not be
            generated</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">a Database handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicreatetransformsummaryinfo.asp">MsiCreateTransformSummaryInfo</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ViewTransform(System.String)">
            <summary>
            Apply a transform to the database, recording the changes in the "_TransformView" table.
            </summary>
            <param name="transformFile">Path to the transform file</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform could not be applied</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseapplytransform.asp">MsiDatabaseApplyTransform</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ApplyTransform(System.String)">
            <summary>
            Apply a transform to the database, suppressing any error conditions
            specified by the transform's summary information.
            </summary>
            <param name="transformFile">Path to the transform file</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform could not be applied</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseapplytransform.asp">MsiDatabaseApplyTransform</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ApplyTransform(System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors)">
            <summary>
            Apply a transform to the database, specifying error conditions to suppress.
            </summary>
            <param name="transformFile">Path to the transform file</param>
            <param name="errorConditionsToSuppress">Error conditions that are to be suppressed</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform could not be applied</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseapplytransform.asp">MsiDatabaseApplyTransform</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.IsTransformValid(System.String)">
            <summary>
            Checks whether a transform is valid for this Database, according to its validation data and flags.
            </summary>
            <param name="transformFile">Path to the transform file</param>
            <returns>true if the transform can be validly applied to this Database; false otherwise</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform could not be applied</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.IsTransformValid(Microsoft.Deployment.WindowsInstaller.SummaryInfo)">
            <summary>
            Checks whether a transform is valid for this Database, according to its SummaryInfo data.
            </summary>
            <param name="transformSummaryInfo">SummaryInfo data of a transform file</param>
            <returns>true if the transform can be validly applied to this Database; false otherwise</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">error processing summary info</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database or SummaryInfo handle is invalid</exception>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.FilePath">
            <summary>
            Gets the file path the Database was originally opened from, or null if not known.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.OpenMode">
            <summary>
            Gets the open mode for the database.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.IsReadOnly">
            <summary>
            Gets a boolean value indicating whether this database was opened in read-only mode.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetdatabasestate.asp">MsiGetDatabaseState</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.Tables">
            <summary>
            Gets the collection of tables in the Database.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.CodePage">
            <summary>
            Gets or sets the code page of the Database.
            </summary>
            <exception cref="T:System.IO.IOException">error exporting/importing the codepage data</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            Getting or setting the code page is a slow operation because it involves an export or import
            of the codepage data to/from a temporary file.
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.SummaryInfo">
            <summary>
            Gets the SummaryInfo object for this database that can be used to examine and modify properties
            to the summary information stream.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
            <remarks><p>
            The object returned from this property does not need to be explicitly persisted or closed.
            Any modifications will be automatically saved when the database is committed.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetsummaryinformation.asp">MsiGetSummaryInformation</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy">
            <summary>
            Managed-code portion of the embedded UI proxy.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy.Initialize(System.Int32,System.String,System.Int32)">
            <summary>
            Initializes managed embedded UI by loading the UI class and invoking its Initialize method.
            </summary>
            <param name="sessionHandle">Integer handle to the installer session.</param>
            <param name="uiClass">Name of the class that implements the embedded UI. This must
            be of the form: &quot;AssemblyName!Namespace.Class&quot;</param>
            <param name="internalUILevel">On entry, contains the current UI level for the installation. After this
            method returns, the installer resets the UI level to the returned value of this parameter.</param>
            <returns>0 if the embedded UI was successfully loaded and initialized,
            ERROR_INSTALL_USEREXIT if the user canceled the installation during initialization,
            or ERROR_INSTALL_FAILURE if the embedded UI could not be initialized.</returns>
            <remarks>
            Due to interop limitations, the successful resulting UILevel is actually returned
            as the high-word of the return value instead of via a ref parameter.
            </remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy.ProcessMessage(System.Int32,System.Int32)">
            <summary>
            Passes a progress message to the UI class.
            </summary>
            <param name="messageType">Installer message type and message box options.</param>
            <param name="recordHandle">Handle to a record containing message data.</param>
            <returns>Return value returned by the UI class.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy.Shutdown">
            <summary>
            Passes a shutdown message to the UI class.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy.InstantiateUI(Microsoft.Deployment.WindowsInstaller.Session,System.String)">
            <summary>
            Instantiates a UI class from a given assembly and class name.
            </summary>
            <param name="session">Installer session, for logging.</param>
            <param name="uiClass">Name of the class that implements the embedded UI. This must
            be of the form: &quot;AssemblyName!Namespace.Class&quot;</param>
            <returns>Interface on the UI class for handling UI messages.</returns>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ActionResult">
            <summary>
            Specifies a return status value for custom actions.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ActionResult.Success">
            <summary>Action completed successfully.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ActionResult.SkipRemainingActions">
            <summary>Skip remaining actions, not an error.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ActionResult.UserExit">
            <summary>User terminated prematurely.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ActionResult.Failure">
            <summary>Unrecoverable error or unhandled exception occurred.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ActionResult.NotExecuted">
            <summary>Action not executed.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode">
            <summary>
            Specifies the open mode for a <see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.ReadOnly">
            <summary>Open a database read-only, no persistent changes.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Transact">
            <summary>Open a database read/write in transaction mode.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Direct">
            <summary>Open a database direct read/write without transaction.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Create">
            <summary>Create a new database, transact mode read/write.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.CreateDirect">
            <summary>Create a new database, direct mode read/write.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallLogModes">
            <summary>
            Log modes available for <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String)"/>
            and <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetExternalUI(Microsoft.Deployment.WindowsInstaller.ExternalUIHandler,Microsoft.Deployment.WindowsInstaller.InstallLogModes)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.None">
            <summary>Disable logging.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.FatalExit">
            <summary>Log out of memory or fatal exit information.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Error">
            <summary>Log error messages.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Warning">
            <summary>Log warning messages.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.User">
            <summary>Log user requests.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Info">
            <summary>Log status messages that are not displayed.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.ResolveSource">
            <summary>Log request to determine a valid source location.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.OutOfDiskSpace">
            <summary>Log insufficient disk space error.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.ActionStart">
            <summary>Log the start of installation actions.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.ActionData">
            <summary>Log the data record for installation actions.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.CommonData">
            <summary>Log parameters for user-interface initialization.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.PropertyDump">
            <summary>Log the property values at termination.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Verbose">
            <summary>
            Sends large amounts of information to log file not generally useful to users.
            May be used for support.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.ExtraDebug">
            <summary>
            Log extra debugging information.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.LogOnlyOnError">
            <summary>
            Log only on error.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Progress">
            <summary>
            Log progress bar information. This message includes information on units so far and total number
            of units. See <see cref="M:Microsoft.Deployment.WindowsInstaller.Session.Message(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record)"/> for an explanation of the message format. This message
            is only sent to an external user interface and is not logged.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Initialize">
            <summary>
            If this is not a quiet installation, then the basic UI has been initialized. If this is a full
            UI installation, the Full UI is not yet initialized. This message is only sent to an external
            user interface and is not logged.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Terminate">
            <summary>
            If a full UI is being used, the full UI has ended. If this is not a quiet installation, the basic
            UI has not yet ended. This message is only sent to an external user interface and is not logged.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.ShowDialog">
            <summary>
            Sent prior to display of the Full UI dialog. This message is only sent to an external user
            interface and is not logged.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.FilesInUse">
            <summary>
            List of files in use that need to be replaced.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.RMFilesInUse">
            <summary>
            [MSI 4.0] List of apps that the user can request Restart Manager to shut down and restart.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallMessage">
            <summary>
            Type of message to be processed by <see cref="M:Microsoft.Deployment.WindowsInstaller.Session.Message(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record)"/>,
            <see cref="T:Microsoft.Deployment.WindowsInstaller.ExternalUIHandler"/>, or <see cref="T:Microsoft.Deployment.WindowsInstaller.ExternalUIRecordHandler"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.FatalExit">
            <summary>Premature termination, possibly fatal OOM.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Error">
            <summary>Formatted error message.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Warning">
            <summary>Formatted warning message.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.User">
            <summary>User request message.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Info">
            <summary>Informative message for log.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.FilesInUse">
            <summary>List of files in use that need to be replaced.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.ResolveSource">
            <summary>Request to determine a valid source location.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.OutOfDiskSpace">
            <summary>Insufficient disk space message.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.ActionStart">
            <summary>Start of action: action name &amp; description.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.ActionData">
            <summary>Formatted data associated with individual action item.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Progress">
            <summary>Progress gauge info: units so far, total.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.CommonData">
            <summary>Product info for dialog: language Id, dialog caption.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Initialize">
            <summary>Sent prior to UI initialization, no string data.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Terminate">
            <summary>Sent after UI termination, no string data.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.ShowDialog">
            <summary>Sent prior to display or authored dialog or wizard.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.RMFilesInUse">
            <summary>[MSI 4.0] List of apps that the user can request Restart Manager to shut down and restart.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.InstallStart">
            <summary>[MSI 4.5] Sent prior to install of a product.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.InstallEnd">
            <summary>[MSI 4.5] Sent after install of a product.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallMode">
            <summary>
            Specifies the install mode for <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.ProvideComponent(System.String,System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode)"/> or <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.ProvideQualifiedComponent(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode,System.String)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMode.NoSourceResolution">
            <summary>Provide the component only if the feature's installation state is <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Local"/>.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMode.NoDetection">
            <summary>Only check that the component is registered, without verifying that the key file of the component exists.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMode.Existing">
            <summary>Provide the component only if the feature exists.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMode.Default">
            <summary>Provide the component and perform any installation necessary to provide the component.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallRunMode">
            <summary>
            Specifies the run mode for <see cref="M:Microsoft.Deployment.WindowsInstaller.Session.GetMode(Microsoft.Deployment.WindowsInstaller.InstallRunMode)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Admin">
            <summary>The administrative mode is installing, or the product is installing.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Advertise">
            <summary>The advertisements are installing or the product is installing or updating.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Maintenance">
            <summary>An existing installation is being modified or there is a new installation.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.RollbackEnabled">
            <summary>Rollback is enabled.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.LogEnabled">
            <summary>The log file is active. It was enabled prior to the installation session.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Operations">
            <summary>Execute operations are spooling or they are in the determination phase.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.RebootAtEnd">
            <summary>A reboot is necessary after a successful installation (settable).</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.RebootNow">
            <summary>A reboot is necessary to continue the installation (settable).</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Cabinet">
            <summary>Files from cabinets and Media table files are installing.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.SourceShortNames">
            <summary>The source LongFileNames is suppressed through the PID_MSISOURCE summary property.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.TargetShortNames">
            <summary>The target LongFileNames is suppressed through the SHORTFILENAMES property.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Windows9x">
            <summary>The operating system is Windows 95, Windows 98, or Windows ME.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.ZawEnabled">
            <summary>The operating system supports demand installation.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Scheduled">
            <summary>A custom action called from install script execution.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Rollback">
            <summary>A custom action called from rollback execution script.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Commit">
            <summary>A custom action called from commit execution script.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallState">
            <summary>
            Installed state of a Component or Feature.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.NotUsed">
            <summary>The component is disabled.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.BadConfig">
            <summary>The installation configuration data is corrupt.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Incomplete">
            <summary>The installation is suspended or in progress.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.SourceAbsent">
            <summary>Component is set to run from source, but source is unavailable.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.MoreData">
            <summary>The buffer overflow is returned.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.InvalidArgument">
            <summary>An invalid parameter was passed to the function.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Unknown">
            <summary>An unrecognized product or feature name was passed to the function.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Broken">
            <summary>The component is broken.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Advertised">
            <summary>The feature is advertised.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Removed">
            <summary>The component is being removed. In action state and not settable.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Absent">
            <summary>The component is not installed, or action state is absent but clients remain.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Local">
            <summary>The component is installed on the local drive.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Source">
            <summary>The component will run from the source, CD, or network.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Default">
            <summary>The component will be installed in the default location: local or source.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallType">
            <summary>
            Specifies the type of installation for <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.ApplyPatch(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallType,System.String)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallType.Default">
            <summary>Searches system for products to patch.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallType.NetworkImage">
            <summary>Indicates a administrative installation.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallType.SingleInstance">
            <summary>Indicates a particular instance.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallUIOptions">
            <summary>
            Level of the installation user interface, specified with
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.NoChange">
            <summary>Does not change UI level.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Default">
            <summary>Uses Default UI level.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Silent">
            <summary>Silent installation.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Basic">
            <summary>Simple progress and error handling.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Reduced">
            <summary>Authored UI, wizard dialogs suppressed.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Full">
            <summary>Authored UI with wizards, progress, and errors.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.HideCancel">
            <summary>
            When combined with the <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Basic"/> value, the installer does not display
            the cancel button in the progress dialog.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.ProgressOnly">
            <summary>
            When combined with the <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Basic"/> value, the installer displays progress
            dialog boxes but does not display any modal dialog boxes or error dialog boxes.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.EndDialog">
            <summary>
            When combined with another value, the installer displays a modal dialog
            box at the end of a successful installation or if there has been an error.
            No dialog box is displayed if the user cancels.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.SourceResolutionOnly">
            <summary>
            Forces display of the source resolution dialog even if the UI is otherwise silent.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.MessageResult">
            <summary>
            Specifies a return status value for message handlers.  These values are returned by
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Session.Message(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record)"/>, <see cref="T:Microsoft.Deployment.WindowsInstaller.ExternalUIHandler"/>, and <see cref="M:Microsoft.Deployment.WindowsInstaller.IEmbeddedUI.ProcessMessage(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record,Microsoft.Deployment.WindowsInstaller.MessageButtons,Microsoft.Deployment.WindowsInstaller.MessageIcon,Microsoft.Deployment.WindowsInstaller.MessageDefaultButton)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Error">
            <summary>An error was found in the message handler.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.None">
            <summary>No action was taken.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.OK">
            <summary>IDOK</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Cancel">
            <summary>IDCANCEL</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Abort">
            <summary>IDABORT</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Retry">
            <summary>IDRETRY</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Ignore">
            <summary>IDIGNORE</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Yes">
            <summary>IDYES</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.No">
            <summary>IDNO</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.MessageButtons">
            <summary>
            Specifies constants defining which buttons to display for a message. This can be cast to
            the MessageBoxButtons enum in System.Windows.Forms and System.Windows.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.OK">
            <summary>
            The message contains an OK button.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.OKCancel">
            <summary>
            The message contains OK and Cancel buttons.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.AbortRetryIgnore">
            <summary>
            The message contains Abort, Retry, and Ignore buttons.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.YesNoCancel">
            <summary>
            The message contains Yes, No, and Cancel buttons.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.YesNo">
            <summary>
            The message contains Yes and No buttons.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.RetryCancel">
            <summary>
            The message contains Retry and Cancel buttons.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.MessageIcon">
            <summary>
            Specifies constants defining which information to display. This can be cast to
            the MessageBoxIcon enum in System.Windows.Forms and System.Windows.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.None">
            <summary>
            The message contain no symbols.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Error">
            <summary>
            The message contains a symbol consisting of white X in a circle with a red background.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Hand">
            <summary>
            The message contains a symbol consisting of a white X in a circle with a red background.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Stop">
            <summary>
            The message contains a symbol consisting of white X in a circle with a red background.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Question">
            <summary>
            The message contains a symbol consisting of a question mark in a circle.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Exclamation">
            <summary>
            The message contains a symbol consisting of an exclamation point in a triangle with a yellow background.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Warning">
            <summary>
            The message contains a symbol consisting of an exclamation point in a triangle with a yellow background.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Information">
            <summary>
            The message contains a symbol consisting of a lowercase letter i in a circle.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Asterisk">
            <summary>
            The message contains a symbol consisting of a lowercase letter i in a circle.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.MessageDefaultButton">
            <summary>
            Specifies constants defining the default button on a message. This can be cast to
            the MessageBoxDefaultButton enum in System.Windows.Forms and System.Windows.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageDefaultButton.Button1">
            <summary>
            The first button on the message is the default button.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageDefaultButton.Button2">
            <summary>
            The second button on the message is the default button.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageDefaultButton.Button3">
            <summary>
            The third button on the message is the default button.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.PatchStates">
            <summary>
            Specifies the different patch states for <see cref="M:Microsoft.Deployment.WindowsInstaller.PatchInstallation.GetPatches(System.String,System.String,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts,Microsoft.Deployment.WindowsInstaller.PatchStates)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.None">
            <summary>Invalid value.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.Applied">
            <summary>Patches applied to a product.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.Superseded">
            <summary>Patches that are superseded by other patches.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.Obsoleted">
            <summary>Patches that are obsolesced by other patches.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.Registered">
            <summary>Patches that are registered to a product but not applied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.All">
            <summary>All valid patch states.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ReinstallModes">
            <summary>
            Specifies the reinstall mode for <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.ReinstallFeature(System.String,System.String,Microsoft.Deployment.WindowsInstaller.ReinstallModes)"/> or <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.ReinstallProduct(System.String,Microsoft.Deployment.WindowsInstaller.ReinstallModes)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileMissing">
            <summary>Reinstall only if file is missing.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileOlderVersion">
            <summary>Reinstall if file is missing, or older version.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileEqualVersion">
            <summary>Reinstall if file is missing, or equal or older version.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileExact">
            <summary>Reinstall if file is missing, or not exact version.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileVerify">
            <summary>Checksum executables, reinstall if missing or corrupt.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileReplace">
            <summary>Reinstall all files, regardless of version.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.MachineData">
            <summary>Insure required machine reg entries.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.UserData">
            <summary>Insure required user reg entries.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.Shortcut">
            <summary>Validate shortcuts items.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.Package">
            <summary>Use re-cache source install package.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.TransactionAttributes">
            <summary>
            Attributes for <see cref="T:Microsoft.Deployment.WindowsInstaller.Transaction"/> methods.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransactionAttributes.None">
            <summary>No attributes.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransactionAttributes.ChainEmbeddedUI">
            <summary>Request that the Windows Installer not shutdown the embedded UI until the transaction is complete.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransactionAttributes.JoinExistingEmbeddedUI">
            <summary>Request that the Windows Installer transfer the embedded UI from the original installation.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.TransformErrors">
            <summary>
            Transform error conditions available for <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.CreateTransformSummaryInfo(Microsoft.Deployment.WindowsInstaller.Database,System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors,Microsoft.Deployment.WindowsInstaller.TransformValidations)"/> or
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ApplyTransform(System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.None">
            <summary>No error conditions.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.AddExistingRow">
            <summary>Adding a row that already exists.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.DelMissingRow">
            <summary>Deleting a row that doesn't exist.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.AddExistingTable">
            <summary>Adding a table that already exists.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.DelMissingTable">
            <summary>Deleting a table that doesn't exist.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.UpdateMissingRow">
            <summary>Updating a row that doesn't exist.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.ChangeCodePage">
            <summary>Transform and database code pages do not match and neither code page is neutral.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.ViewTransform">
            <summary>Create the temporary _TransformView table when applying the transform.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.TransformValidations">
            <summary>
            Transform validation flags available for <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.CreateTransformSummaryInfo(Microsoft.Deployment.WindowsInstaller.Database,System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors,Microsoft.Deployment.WindowsInstaller.TransformValidations)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.None">
            <summary>Validate no properties.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.Language">
            <summary>Default language must match base database.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.Product">
            <summary>Product must match base database.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.MajorVersion">
            <summary>Check major version only.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.MinorVersion">
            <summary>Check major and minor versions only.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.UpdateVersion">
            <summary>Check major, minor, and update versions.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.NewLessBaseVersion">
            <summary>Installed version &lt; base version.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.NewLessEqualBaseVersion">
            <summary>Installed version &lt;= base version.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.NewEqualBaseVersion">
            <summary>Installed version = base version.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.NewGreaterEqualBaseVersion">
            <summary>Installed version &gt;= base version.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.NewGreaterBaseVersion">
            <summary>Installed version &gt; base version.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.UpgradeCode">
            <summary>UpgradeCode must match base database.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.UserContexts">
            <summary>
            Specifies the installation context for <see cref="T:Microsoft.Deployment.WindowsInstaller.ProductInstallation"/>s,
            <see cref="T:Microsoft.Deployment.WindowsInstaller.PatchInstallation"/>es, and
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)"/>
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.None">
            <summary>Not installed.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserManaged">
            <summary>User managed install context.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserUnmanaged">
            <summary>User non-managed context.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.Machine">
            <summary>Per-machine context.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.All">
            <summary>All contexts, or all valid values.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.AllUserManaged">
            <summary>All user-managed contexts.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ValidationError">
            <summary>
            Defines the type of error encountered by the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Validate(Microsoft.Deployment.WindowsInstaller.Record)"/>, <see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateNew(Microsoft.Deployment.WindowsInstaller.Record)"/>,
            or <see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateFields(Microsoft.Deployment.WindowsInstaller.Record)"/> methods of the <see cref="T:Microsoft.Deployment.WindowsInstaller.View"/> class.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.None">
            <summary>No error.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.DuplicateKey">
            <summary>The new record duplicates primary keys of the existing record in a table.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.Required">
            <summary>There are no null values allowed, or the column is about to be deleted but is referenced by another row.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadLink">
            <summary>The corresponding record in a foreign table was not found.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.Overflow">
            <summary>The data is greater than the maximum value allowed.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.Underflow">
            <summary>The data is less than the minimum value allowed.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.NotInSet">
            <summary>The data is not a member of the values permitted in the set.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadVersion">
            <summary>An invalid version string was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadCase">
            <summary>The case was invalid. The case must be all uppercase or all lowercase.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadGuid">
            <summary>An invalid GUID was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadWildcard">
            <summary>An invalid wildcard file name was supplied, or the use of wildcards was invalid.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadIdentifier">
            <summary>An invalid identifier was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadLanguage">
            <summary>Invalid language IDs were supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadFileName">
            <summary>An invalid file name was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadPath">
            <summary>An invalid path was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadCondition">
            <summary>An invalid conditional statement was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadFormatted">
            <summary>An invalid format string was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadTemplate">
            <summary>An invalid template string was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadDefaultDir">
            <summary>An invalid string was supplied in the DefaultDir column of the Directory table.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadRegPath">
            <summary>An invalid registry path string was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadCustomSource">
            <summary>An invalid string was supplied in the CustomSource column of the CustomAction table.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadProperty">
            <summary>An invalid property string was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.MissingData">
            <summary>The _Validation table is missing a reference to a column.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadCategory">
            <summary>The category column of the _Validation table for the column is invalid.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadKeyTable">
            <summary>The table in the Keytable column of the _Validation table was not found or loaded.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadMaxMinValues">
            <summary>The value in the MaxValue column of the _Validation table is less than the value in the MinValue column.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadCabinet">
            <summary>An invalid cabinet name was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadShortcut">
            <summary>An invalid shortcut target name was supplied.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.StringOverflow">
            <summary>The string is too long for the length specified by the column definition.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadLocalizeAttrib">
            <summary>An invalid localization attribute was supplied. (Primary keys cannot be localized.)</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ViewModifyMode">
            <summary>
            Specifies the modify mode for <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Seek">
            <summary>
            Refreshes the information in the supplied record without changing the position
            in the result set and without affecting subsequent fetch operations.
            </summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Refresh">
            <summary>Refreshes the data in a Record.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Insert">
            <summary>Inserts a Record into the view.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Update">
            <summary>Updates the View with new data from the Record.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Assign">
            <summary>Updates or inserts a Record into the View.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Replace">
            <summary>Updates or deletes and inserts a Record into the View.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Merge">
            <summary>Inserts or validates a record.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Delete">
            <summary>Deletes a Record from the View.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.InsertTemporary">
            <summary>Inserts a Record into the View.  The inserted data is not persistent.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Validate">
            <summary>Validates a record.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.ValidateNew">
            <summary>Validates a new record.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.ValidateField">
            <summary>Validates fields of a fetched or new record. Can validate one or more fields of an incomplete record.</summary>
        </member>
        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.ValidateDelete">
            <summary>Validates a record that will be deleted later.</summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallerException">
            <summary>
            Base class for Windows Installer exceptions.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.#ctor(System.String,System.Exception)">
            <summary>
            Creates a new InstallerException with a specified error message and a reference to the
            inner exception that is the cause of this exception.
            </summary>
            <param name="msg">The message that describes the error.</param>
            <param name="innerException">The exception that is the cause of the current exception. If the
            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
            is raised in a catch block that handles the inner exception.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.#ctor(System.String)">
            <summary>
            Creates a new InstallerException with a specified error message.
            </summary>
            <param name="msg">The message that describes the error.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.#ctor">
            <summary>
            Creates a new InstallerException.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the InstallerException class with serialized data.
            </summary>
            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Sets the SerializationInfo with information about the exception.
            </summary>
            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.GetErrorRecord">
            <summary>
            Gets extended information about the error, or null if no further information
            is available.
            </summary>
            <returns>A Record object. Field 1 of the Record contains the installer
            message code. Other fields contain data specific to the particular error.</returns>
            <remarks><p>
            If the record is passed to <see cref="M:Microsoft.Deployment.WindowsInstaller.Session.Message(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record)"/>, it is formatted
            by looking up the string in the current database. If there is no installation
            session, the formatted error message may be obtained by a query on the Error table using
            the error code, followed by a call to <see cref="M:Microsoft.Deployment.WindowsInstaller.Record.ToString"/>.
            Alternatively, the standard MSI message can by retrieved by calling the
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.GetErrorMessage(Microsoft.Deployment.WindowsInstaller.Record,System.Globalization.CultureInfo)"/> method.
            </p><p>
            The following methods and properties may report extended error data:
            <list type="bullet">
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/> (constructor)</item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ApplyTransform(System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Commit"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Execute(System.String,System.Object[])"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteQuery(System.String,System.Object[])"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteIntegerQuery(System.String,System.Object[])"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteStringQuery(System.String,System.Object[])"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Export(System.String,System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ExportAll(System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.GenerateTransform(Microsoft.Deployment.WindowsInstaller.Database,System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Import(System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ImportAll(System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Merge(Microsoft.Deployment.WindowsInstaller.Database,System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.OpenView(System.String,System.Object[])"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="P:Microsoft.Deployment.WindowsInstaller.Database.SummaryInfo"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ViewTransform(System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Assign(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Delete(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Execute(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Insert(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.InsertTemporary(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Merge(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Refresh(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Replace(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Seek(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Update(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Validate(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateFields(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateDelete(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateNew(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.SummaryInfo"/> (constructor)</item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Record"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.Int32,System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Session"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Session.SetInstallLevel(System.Int32)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Session"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Session.GetSourcePath(System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Session"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Session.GetTargetPath(System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Session"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Session.SetTargetPath(System.String,System.String)"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.ComponentInfo"/>.<see cref="P:Microsoft.Deployment.WindowsInstaller.ComponentInfo.CurrentState"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.FeatureInfo"/>.<see cref="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.CurrentState"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.FeatureInfo"/>.<see cref="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.ValidStates"/></item>
            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.FeatureInfo"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.FeatureInfo.GetCost(System.Boolean,System.Boolean,Microsoft.Deployment.WindowsInstaller.InstallState)"/></item>
            </list>
            </p><p>
            The Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetlasterrorrecord.asp">MsiGetLastErrorRecord</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallerException.ErrorCode">
            <summary>
            Gets the system error code that resulted in this exception, or 0 if not applicable.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallerException.Message">
            <summary>
            Gets a message that describes the exception.  This message may contain detailed
            formatted error data if it was available.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">
            <summary>
            User Canceled the installation.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallCanceledException.#ctor(System.String,System.Exception)">
            <summary>
            Creates a new InstallCanceledException with a specified error message and a reference to the
            inner exception that is the cause of this exception.
            </summary>
            <param name="msg">The message that describes the error.</param>
            <param name="innerException">The exception that is the cause of the current exception. If the
            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
            is raised in a catch block that handles the inner exception.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallCanceledException.#ctor(System.String)">
            <summary>
            Creates a new InstallCanceledException with a specified error message.
            </summary>
            <param name="msg">The message that describes the error.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallCanceledException.#ctor">
            <summary>
            Creates a new InstallCanceledException.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallCanceledException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the InstallCanceledException class with serialized data.
            </summary>
            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">
            <summary>
            A bad SQL query string was passed to <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.OpenView(System.String,System.Object[])"/> or <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Execute(System.String,System.Object[])"/>.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException.#ctor(System.String,System.Exception)">
            <summary>
            Creates a new BadQuerySyntaxException with a specified error message and a reference to the
            inner exception that is the cause of this exception.
            </summary>
            <param name="msg">The message that describes the error.</param>
            <param name="innerException">The exception that is the cause of the current exception. If the
            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
            is raised in a catch block that handles the inner exception.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException.#ctor(System.String)">
            <summary>
            Creates a new BadQuerySyntaxException with a specified error message.
            </summary>
            <param name="msg">The message that describes the error.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException.#ctor">
            <summary>
            Creates a new BadQuerySyntaxException.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the BadQuerySyntaxException class with serialized data.
            </summary>
            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">
            <summary>
            A method was called on an invalid installer handle.  The handle may have been already closed.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InvalidHandleException.#ctor(System.String,System.Exception)">
            <summary>
            Creates a new InvalidHandleException with a specified error message and a reference to the
            inner exception that is the cause of this exception.
            </summary>
            <param name="msg">The message that describes the error.</param>
            <param name="innerException">The exception that is the cause of the current exception. If the
            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
            is raised in a catch block that handles the inner exception.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InvalidHandleException.#ctor(System.String)">
            <summary>
            Creates a new InvalidHandleException with a specified error message.
            </summary>
            <param name="msg">The message that describes the error.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InvalidHandleException.#ctor">
            <summary>
            Creates a new InvalidHandleException.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InvalidHandleException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the InvalidHandleException class with serialized data.
            </summary>
            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.MergeException">
            <summary>
            A failure occurred when executing <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Merge(Microsoft.Deployment.WindowsInstaller.Database,System.String)"/>.  The exception may contain
            details about the merge conflict.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.MergeException.#ctor(System.String,System.Exception)">
            <summary>
            Creates a new MergeException with a specified error message and a reference to the
            inner exception that is the cause of this exception.
            </summary>
            <param name="msg">The message that describes the error.</param>
            <param name="innerException">The exception that is the cause of the current exception. If the
            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
            is raised in a catch block that handles the inner exception.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.MergeException.#ctor(System.String)">
            <summary>
            Creates a new MergeException with a specified error message.
            </summary>
            <param name="msg">The message that describes the error.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.MergeException.#ctor">
            <summary>
            Creates a new MergeException.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.MergeException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the MergeException class with serialized data.
            </summary>
            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.MergeException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Sets the SerializationInfo with information about the exception.
            </summary>
            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.MergeException.ConflictCounts">
            <summary>
            Gets the number of merge conflicts in each table, corresponding to the tables returned by
            <see cref="P:Microsoft.Deployment.WindowsInstaller.MergeException.ConflictTables"/>.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.MergeException.ConflictTables">
            <summary>
            Gets the list of tables containing merge conflicts.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.MergeException.Message">
            <summary>
            Gets a message that describes the merge conflits.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ExternalUIHandler">
            <summary>
            Defines a callback function that the installer calls for progress notification and error messages.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ExternalUIRecordHandler">
            <summary>
            [MSI 3.1] Defines a callback function that the installer calls for record-based progress notification and error messages.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.Installer">
            <summary>
            Provides static methods for installing and configuring products and patches.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.SetExternalUI(Microsoft.Deployment.WindowsInstaller.ExternalUIHandler,Microsoft.Deployment.WindowsInstaller.InstallLogModes)">
            <summary>
            Enables an external user-interface handler. This external UI handler is called before the
            normal internal user-interface handler. The external UI handler has the option to suppress
            the internal UI by returning a non-zero value to indicate that it has handled the messages.
            </summary>
            <param name="uiHandler">A callback delegate that handles the UI messages</param>
            <param name="messageFilter">Specifies which messages to handle using the external message handler.
            If the external handler returns a non-zero result, then that message will not be sent to the UI,
            instead the message will be logged if logging has been enabled.</param>
            <returns>The previously set external handler, or null if there was no previously set handler</returns>
            <remarks><p>
            To restore the previous UI handler, a second call is made to SetExternalUI using the
            ExternalUIHandler returned by the first call to SetExternalUI and specifying
            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.None"/> as the message filter.
            </p><p>
            The external user interface handler does not have full control over the external user
            interface unless <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/> is called with the uiLevel parameter set to
            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Silent"/>. If SetInternalUI is not called, the internal user
            interface level defaults to <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Basic"/>. As a result, any message not
            handled by the external user interface handler is handled by Windows Installer. The initial
            "Preparing to install..." dialog always appears even if the external user interface
            handler handles all messages.
            </p><p>
            SetExternalUI should only be called from a bootstrapping application. You cannot call
            it from a custom action
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetexternalui.asp">MsiSetExternalUI</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.SetExternalUI(Microsoft.Deployment.WindowsInstaller.ExternalUIRecordHandler,Microsoft.Deployment.WindowsInstaller.InstallLogModes)">
            <summary>
            [MSI 3.1] Enables a record-based external user-interface handler. This external UI handler is called
            before the normal internal user-interface handler. The external UI handler has the option to suppress
            the internal UI by returning a non-zero value to indicate that it has handled the messages.
            </summary>
            <param name="uiHandler">A callback delegate that handles the UI messages</param>
            <param name="messageFilter">Specifies which messages to handle using the external message handler.
            If the external handler returns a non-zero result, then that message will not be sent to the UI,
            instead the message will be logged if logging has been enabled.</param>
            <returns>The previously set external handler, or null if there was no previously set handler</returns>
            <remarks><p>
            To restore the previous UI handler, a second call is made to SetExternalUI using the
            ExternalUIHandler returned by the first call to SetExternalUI and specifying
            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.None"/> as the message filter.
            </p><p>
            The external user interface handler does not have full control over the external user
            interface unless <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/> is called with the uiLevel parameter set to
            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Silent"/>. If SetInternalUI is not called, the internal user
            interface level defaults to <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Basic"/>. As a result, any message not
            handled by the external user interface handler is handled by Windows Installer. The initial
            "Preparing to install..." dialog always appears even if the external user interface
            handler handles all messages.
            </p><p>
            SetExternalUI should only be called from a bootstrapping application. You cannot call
            it from a custom action
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetexternaluirecord.asp">MsiSetExternalUIRecord</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions,System.IntPtr@)">
            <summary>
            Enables the installer's internal user interface. Then this user interface is used
            for all subsequent calls to user-interface-generating installer functions in this process.
            </summary>
            <param name="uiOptions">Specifies the level of complexity of the user interface</param>
            <param name="windowHandle">Handle to a window, which becomes the owner of any user interface created.
            A pointer to the previous owner of the user interface is returned.</param>
            <returns>The previous user interface level</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetinternalui.asp">MsiSetInternalUI</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)">
            <summary>
            Enables the installer's internal user interface. Then this user interface is used
            for all subsequent calls to user-interface-generating installer functions in this process.
            The owner of the user interface does not change.
            </summary>
            <param name="uiOptions">Specifies the level of complexity of the user interface</param>
            <returns>The previous user interface level</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetinternalui.asp">MsiSetInternalUI</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String)">
            <summary>
            Enables logging of the selected message type for all subsequent install sessions in
            the current process space.
            </summary>
            <param name="logModes">One or more mode flags specifying the type of messages to log</param>
            <param name="logFile">Full path to the log file.  A null path disables logging,
            in which case the logModes paraneter is ignored.</param>
            <exception cref="T:System.ArgumentException">an invalid log mode was specified</exception>
            <remarks>This method takes effect on any new installation processes.  Calling this
            method from within a custom action will not start logging for that installation.</remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String,System.Boolean,System.Boolean)">
            <summary>
            Enables logging of the selected message type for all subsequent install sessions in
            the current process space.
            </summary>
            <param name="logModes">One or more mode flags specifying the type of messages to log</param>
            <param name="logFile">Full path to the log file.  A null path disables logging,
            in which case the logModes paraneter is ignored.</param>
            <param name="append">If true, the log lines will be appended to any existing file content.
            If false, the log file will be truncated if it exists.  The default is false.</param>
            <param name="flushEveryLine">If true, the log will be flushed after every line.
            If false, the log will be flushed every 20 lines.  The default is true.</param>
            <exception cref="T:System.ArgumentException">an invalid log mode was specified</exception>
            <remarks><p>
            This method takes effect on any new installation processes.  Calling this
            method from within a custom action will not start logging for that installation.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienablelog.asp">MsiEnableLog</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.UseFeature(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode)">
            <summary>
            increments the usage count for a particular feature and returns the installation state for
            that feature. This method should be used to indicate an application's intent to use a feature.
            </summary>
            <param name="productCode">The product code of the product.</param>
            <param name="feature">The feature to be used.</param>
            <param name="installMode">Must have the value <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallMode.NoDetection"/>.</param>
            <returns>The installed state of the feature.</returns>
            <remarks><p>
            The UseFeature method should only be used on features known to be published. The application
            should determine the status of the feature by calling either the FeatureState method or
            Features method.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiusefeature.asp">MsiUseFeature</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiusefeatureex.asp">MsiUseFeatureEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.OpenPackage(System.String,System.Boolean)">
            <summary>
            Opens an installer package for use with functions that access the product database and install engine,
            returning an Session object.
            </summary>
            <param name="packagePath">Path to the package</param>
            <param name="ignoreMachineState">Specifies whether or not the create a Session object that ignores the
            computer state and that is incapable of changing the current computer state. A value of false yields
            the normal behavior.  A value of true creates a "safe" Session object that cannot change of the current
            machine state.</param>
            <returns>A Session object allowing access to the product database and install engine</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The product could not be opened</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
            <remarks><p>
            Note that only one Session object can be opened by a single process. OpenPackage cannot be used in a
            custom action because the active installation is the only session allowed.
            </p><p>
            A "safe" Session object ignores the current computer state when opening the package and prevents
            changes to the current computer state.
            </p><p>
            The Session object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopenpackage.asp">MsiOpenPackage</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopenpackageex.asp">MsiOpenPackageEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.OpenPackage(Microsoft.Deployment.WindowsInstaller.Database,System.Boolean)">
            <summary>
            Opens an installer package for use with functions that access the product database and install engine,
            returning an Session object.
            </summary>
            <param name="database">Database used to create the session</param>
            <param name="ignoreMachineState">Specifies whether or not the create a Session object that ignores the
            computer state and that is incapable of changing the current computer state. A value of false yields
            the normal behavior.  A value of true creates a "safe" Session object that cannot change of the current
            machine state.</param>
            <returns>A Session object allowing access to the product database and install engine</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The product could not be opened</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
            <remarks><p>
            Note that only one Session object can be opened by a single process. OpenPackage cannot be used in a
            custom action because the active installation is the only session allowed.
            </p><p>
            A "safe" Session object ignores the current computer state when opening the package and prevents
            changes to the current computer state.
            </p><p>
            The Session object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopenpackage.asp">MsiOpenPackage</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopenpackageex.asp">MsiOpenPackageEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.OpenProduct(System.String)">
            <summary>
            Opens an installer package for an installed product using the product code.
            </summary>
            <param name="productCode">Product code of the installed product</param>
            <returns>A Session object allowing access to the product database and install engine,
            or null if the specified product is not installed.</returns>
            <exception cref="T:System.ArgumentException">An unknown product was requested</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The product could not be opened</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
            <remarks><p>
            Note that only one Session object can be opened by a single process. OpenProduct cannot be
            used in a custom action because the active installation is the only session allowed.
            </p><p>
            The Session object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopenproduct.asp">MsiOpenProduct</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ProvideComponent(System.String,System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode)">
            <summary>
            Gets the full component path, performing any necessary installation. This method prompts for source if
            necessary and increments the usage count for the feature.
            </summary>
            <param name="product">Product code for the product that contains the feature with the necessary component</param>
            <param name="feature">Feature ID of the feature with the necessary component</param>
            <param name="component">Component code of the necessary component</param>
            <param name="installMode">Installation mode; this can also include bits from <see cref="T:Microsoft.Deployment.WindowsInstaller.ReinstallModes"/></param>
            <returns>Path to the component</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprovidecomponent.asp">MsiProvideComponent</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ProvideQualifiedComponent(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode,System.String)">
            <summary>
            Gets the full component path for a qualified component that is published by a product and
            performs any necessary installation. This method prompts for source if necessary and increments
            the usage count for the feature.
            </summary>
            <param name="component">Specifies the component ID for the requested component. This may not be the
            GUID for the component itself but rather a server that provides the correct functionality, as in the
            ComponentId column of the PublishComponent table.</param>
            <param name="qualifier">Specifies a qualifier into a list of advertising components (from PublishComponent Table).</param>
            <param name="installMode">Installation mode; this can also include bits from <see cref="T:Microsoft.Deployment.WindowsInstaller.ReinstallModes"/></param>
            <param name="product">Optional; specifies the product to match that has published the qualified component.</param>
            <returns>Path to the component</returns>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprovidequalifiedcomponent.asp">MsiProvideQualifiedComponent</a>
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprovidequalifiedcomponentex.asp">MsiProvideQualifiedComponentEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ProvideAssembly(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode,System.Boolean)">
            <summary>
            Gets the full path to a Windows Installer component containing an assembly. This method prompts for a source and
            increments the usage count for the feature.
            </summary>
            <param name="assemblyName">Assembly name</param>
            <param name="appContext">Set to null for global assemblies. For private assemblies, set to the full path of the
            application configuration file (.cfg file) or executable file (.exe) of the application to which the assembly
            has been made private.</param>
            <param name="installMode">Installation mode; this can also include bits from <see cref="T:Microsoft.Deployment.WindowsInstaller.ReinstallModes"/></param>
            <param name="isWin32Assembly">True if this is a Win32 assembly, false if it is a .NET assembly</param>
            <returns>Path to the assembly</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprovideassembly.asp">MsiProvideAssembly</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.InstallMissingComponent(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallState)">
            <summary>
            Installs files that are unexpectedly missing.
            </summary>
            <param name="product">Product code for the product that owns the component to be installed</param>
            <param name="component">Component to be installed</param>
            <param name="installState">Specifies the way the component should be installed.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiinstallmissingcomponent.asp">MsiInstallMissingComponent</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.InstallMissingFile(System.String,System.String)">
            <summary>
            Installs files that are unexpectedly missing.
            </summary>
            <param name="product">Product code for the product that owns the file to be installed</param>
            <param name="file">File to be installed</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiinstallmissingfile.asp">MsiInstallMissingFile</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ReinstallFeature(System.String,System.String,Microsoft.Deployment.WindowsInstaller.ReinstallModes)">
            <summary>
            Reinstalls a feature.
            </summary>
            <param name="product">Product code for the product containing the feature to be reinstalled</param>
            <param name="feature">Feature to be reinstalled</param>
            <param name="reinstallModes">Reinstall modes</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msireinstallfeature.asp">MsiReinstallFeature</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ReinstallProduct(System.String,Microsoft.Deployment.WindowsInstaller.ReinstallModes)">
            <summary>
            Reinstalls a product.
            </summary>
            <param name="product">Product code for the product to be reinstalled</param>
            <param name="reinstallModes">Reinstall modes</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msireinstallproduct.asp">MsiReinstallProduct</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.InstallProduct(System.String,System.String)">
            <summary>
            Opens an installer package and initializes an install session.
            </summary>
            <param name="packagePath">path to the patch package</param>
            <param name="commandLine">command line property settings</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error installing the product</exception>
            <remarks><p>
            To completely remove a product, set REMOVE=ALL in <paramRef name="commandLine"/>.
            </p><p>
            This method displays the user interface with the current settings and
            log mode. You can change user interface settings with the <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/>
            and <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetExternalUI(Microsoft.Deployment.WindowsInstaller.ExternalUIHandler,Microsoft.Deployment.WindowsInstaller.InstallLogModes)"/> functions. You can set the log mode with the
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String)"/> function.
            </p><p>
            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
            tested after calling this method.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiinstallproduct.asp">MsiInstallProduct</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ConfigureProduct(System.String,System.Int32,Microsoft.Deployment.WindowsInstaller.InstallState,System.String)">
            <summary>
            Installs or uninstalls a product.
            </summary>
            <param name="productCode">Product code of the product to be configured.</param>
            <param name="installLevel">Specifies the default installation configuration of the
            product. The <paramref name="installLevel"/> parameter is ignored and all features
            are installed if the <paramref name="installState"/> parameter is set to any other
            value than <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Default"/>. This parameter must be either 0
            (install using authored feature levels), 65535 (install all features), or a value
            between 0 and 65535 to install a subset of available features.																																											   </param>
            <param name="installState">Specifies the installation state for the product.</param>
            <param name="commandLine">Specifies the command line property settings. This should
            be a list of the format Property=Setting Property=Setting.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error configuring the product</exception>
            <remarks><p>
            This method displays the user interface with the current settings and
            log mode. You can change user interface settings with the <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/>
            and <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetExternalUI(Microsoft.Deployment.WindowsInstaller.ExternalUIHandler,Microsoft.Deployment.WindowsInstaller.InstallLogModes)"/> functions. You can set the log mode with the
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String)"/> function.
            </p><p>
            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
            tested after calling this method.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiconfigureproduct.asp">MsiConfigureProduct</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiconfigureproductex.asp">MsiConfigureProductEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ConfigureFeature(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallState)">
            <summary>
            Configures the installed state for a product feature.
            </summary>
            <param name="productCode">Product code of the product to be configured.</param>
            <param name="feature">Specifies the feature ID for the feature to be configured.</param>
            <param name="installState">Specifies the installation state for the feature.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error configuring the feature</exception>
            <remarks><p>
            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
            tested after calling this method.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiconfigurefeature.asp">MsiConfigureFeature</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ApplyPatch(System.String,System.String)">
            <summary>
            For each product listed by the patch package as eligible to receive the patch, ApplyPatch invokes
            an installation and sets the PATCH property to the path of the patch package.
            </summary>
            <param name="patchPackage">path to the patch package</param>
            <param name="commandLine">optional command line property settings</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error applying the patch</exception>
            <remarks><p>
            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
            tested after calling this method.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiapplypatch.asp">MsiApplyPatch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ApplyPatch(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallType,System.String)">
            <summary>
            For each product listed by the patch package as eligible to receive the patch, ApplyPatch invokes
            an installation and sets the PATCH property to the path of the patch package.
            </summary>
            <param name="patchPackage">path to the patch package</param>
            <param name="installPackage">path to the product to be patched, if installType
            is set to <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallType.NetworkImage"/></param>
            <param name="installType">type of installation to patch</param>
            <param name="commandLine">optional command line property settings</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error applying the patch</exception>
            <remarks><p>
            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
            tested after calling this method.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiapplypatch.asp">MsiApplyPatch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.RemovePatches(System.Collections.Generic.IList{System.String},System.String,System.String)">
            <summary>
            Removes one or more patches from a single product. To remove a patch from
            multiple products, RemovePatches must be called for each product.
            </summary>
            <param name="patches">List of patches to remove. Each patch can be specified by the GUID
            of the patch or the full path to the patch package.</param>
            <param name="productCode">The ProductCode (GUID) of the product from which the patches
            are removed.  This parameter cannot be null.</param>
            <param name="commandLine">optional command line property settings</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error removing the patches</exception>
            <remarks><p>
            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
            tested after calling this method.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiremovepatches.asp">MsiRemovePatches</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler)">
            <summary>
            Determines which patches apply to a specified product MSI and in what sequence.
            </summary>
            <param name="productPackage">Full path to an MSI file that is the target product
            for the set of patches.</param>
            <param name="patches">An array of strings specifying the patches to be checked.  Each item
            may be the path to an MSP file, the path an XML file, or just an XML blob.</param>
            <param name="errorHandler">Callback to be invoked for each inapplicable patch, reporting the
            reason the patch is not applicable.  This value may be left null if that information is not
            desired.</param>
            <returns>An array of selected patch strings from <paramref name="patches"/>, indicating
            the set of applicable patches.  The items are re-ordered to be in the best sequence.</returns>
            <remarks><p>
            If an item in <paramref name="patches"/> is a file path but does not end in .MSP or .XML,
            it is assumed to be an MSP file.
            </p><p>
            As this overload uses InstallContext.None, it does not consider the current state of
            the system.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidetermineapplicablepatches.asp">MsiDetermineApplicablePatches</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)">
            <summary>
            Determines which patches apply to a specified product and in what sequence.  If
            the product is installed, this method accounts for patches that have already been applied to
            the product and accounts for obsolete and superceded patches.
            </summary>
            <param name="product">The product that is the target for the set of patches.  This may be
            either a ProductCode (GUID) of a product that is currently installed, or the path to a an
            MSI file.</param>
            <param name="patches">An array of strings specifying the patches to be checked.  Each item
            may be the path to an MSP file, the path an XML file, or just an XML blob.</param>
            <param name="errorHandler">Callback to be invoked for each inapplicable patch, reporting the
            reason the patch is not applicable.  This value may be left null if that information is not
            desired.</param>
            <param name="userSid">Specifies a security identifier (SID) of a user. This parameter restricts
            the context of enumeration for this user account. This parameter cannot be the special SID
            strings s-1-1-0 (everyone) or s-1-5-18 (local system). If <paramref name="context"/> is set to
            <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.None"/> or <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.Machine"/>, then
            <paramref name="userSid"/> must be null. For the current user context, <paramref name="userSid"/>
            can be null and <paramref name="context"/> can be set to <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserManaged"/>
            or <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserUnmanaged"/>.</param>
            <param name="context">Restricts the enumeration to per-user-unmanaged, per-user-managed,
            or per-machine context, or (if referring to an MSI) to no system context at all.  This
            parameter can be <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.Machine"/>, <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserManaged"/>,
            <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserUnmanaged"/>, or <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.None"/>.</param>
            <returns>An array of selected patch strings from <paramref name="patches"/>, indicating
            the set of applicable patches.  The items are re-ordered to be in the best sequence.</returns>
            <remarks><p>
            If an item in <paramref name="patches"/> is a file path but does not end in .MSP or .XML,
            it is assumed to be an MSP file.
            </p><p>
            Passing an InstallContext of None only analyzes the MSI file; it does not consider the
            current state of the system. You cannot use InstallContext.None with a ProductCode GUID.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidetermineapplicablepatches.asp">MsiDetermineApplicablePatches</a>
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msideterminepatchsequence.asp">MsiDeterminePatchSequence</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ApplyMultiplePatches(System.Collections.Generic.IList{System.String},System.String,System.String)">
            <summary>
            Applies one or more patches to products that are eligible to receive the patch.
            For each product listed by the patch package as eligible to receive the patch, ApplyPatch invokes
            an installation and sets the PATCH property to the path of the patch package.
            </summary>
            <param name="patchPackages">The set of patch packages to be applied.
            Each item is the full path to an MSP file.</param>
            <param name="productCode">Provides the ProductCode of the product being patched. If this parameter
            is null, the patches are applied to all products that are eligible to receive these patches.</param>
            <param name="commandLine">optional command line property settings</param>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiapplymultiplepatches.asp">MsiApplyMultiplePatches</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ExtractPatchXmlData(System.String)">
            <summary>
            Extracts information from a patch that can be used to determine whether the patch
            applies on a target system. The method returns an XML string that can be provided to
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)"/>
            instead of the full patch file.
            </summary>
            <param name="patchPath">Full path to the patch being queried.</param>
            <returns>XML string containing patch data.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiextractpatchxmldata.asp">MsiExtractPatchXMLData</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.NotifySidChange(System.String,System.String)">
            <summary>
            [MSI 3.1] Migrates a user's application configuration data to a new SID.
            </summary>
            <param name="oldSid">Previous user SID that data is to be migrated from</param>
            <param name="newSid">New user SID that data is to be migrated to</param>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msinotifysidchange.asp">MsiNotifySidChange</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.AdvertiseProduct(System.String,System.Boolean,System.String,System.Int32)">
            <summary>
            Advertises a product to the local computer.
            </summary>
            <param name="packagePath">Path to the package of the product being advertised</param>
            <param name="perUser">True if the product is user-assigned; false if it is machine-assigned.</param>
            <param name="transforms">Semi-colon delimited list of transforms to be applied. This parameter may be null.</param>
            <param name="locale">The language to use if the source supports multiple languages</param>
            <exception cref="T:System.IO.FileNotFoundException">the specified package file does not exist</exception>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32,System.Reflection.ProcessorArchitecture,System.Boolean)"/>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproduct.asp">MsiAdvertiseProduct</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproductex.asp">MsiAdvertiseProductEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32)">
            <summary>
            Generates an advertise script. The method enables the installer to write to a 
            script the registry and shortcut information used to assign or publish a product.
            </summary>
            <param name="packagePath">Path to the package of the product being advertised</param>
            <param name="scriptFilePath">path to script file to be created with the advertise information</param>
            <param name="transforms">Semi-colon delimited list of transforms to be applied. This parameter may be null.</param>
            <param name="locale">The language to use if the source supports multiple languages</param>
            <exception cref="T:System.IO.FileNotFoundException">the specified package file does not exist</exception>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Installer.AdvertiseProduct(System.String,System.Boolean,System.String,System.Int32)"/>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproduct.asp">MsiAdvertiseProduct</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproductex.asp">MsiAdvertiseProductEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32,System.Reflection.ProcessorArchitecture,System.Boolean)">
            <summary>
            Generates an advertise script. The method enables the installer to write to a 
            script the registry and shortcut information used to assign or publish a product.
            </summary>
            <param name="packagePath">Path to the package of the product being advertised</param>
            <param name="scriptFilePath">path to script file to be created with the advertise information</param>
            <param name="transforms">Semi-colon delimited list of transforms to be applied. This parameter may be null.</param>
            <param name="locale">The language to use if the source supports multiple languages</param>
            <param name="processor">Targeted processor architecture.</param>
            <param name="instance">True to install multiple instances through product code changing transform.
            Advertises a new instance of the product. Requires that the <paramref name="transforms"/> parameter
            includes the instance transform that changes the product code.</param>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Installer.AdvertiseProduct(System.String,System.Boolean,System.String,System.Int32)"/>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproduct.asp">MsiAdvertiseProduct</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproductex.asp">MsiAdvertiseProductEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.AdvertiseScript(System.String,System.Int32,System.Boolean)">
            <summary>
            Copies an advertise script file to the local computer.
            </summary>
            <param name="scriptFile">Path to a script file generated by
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32,System.Reflection.ProcessorArchitecture,System.Boolean)"/></param>
            <param name="flags">Flags controlling advertisement</param>
            <param name="removeItems">True if specified items are to be removed instead of being created</param>
            <remarks><p>
            The process calling this function must be running under the LocalSystem account. To advertise an
            application for per-user installation to a targeted user, the thread that calls this function must
            impersonate the targeted user. If the thread calling this function is not impersonating a targeted
            user, the application is advertised to all users for installation with elevated privileges.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ProcessAdvertiseScript(System.String,System.String,System.Boolean,System.Boolean)">
            <summary>
            Processes an advertise script file into the specified locations.
            </summary>
            <param name="scriptFile">Path to a script file generated by
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32,System.Reflection.ProcessorArchitecture,System.Boolean)"/></param>
            <param name="iconFolder">An optional path to a folder in which advertised icon files and transform
            files are located. If this parameter is null, no icon or transform files are written.</param>
            <param name="shortcuts">True if shortcuts should be created</param>
            <param name="removeItems">True if specified items are to be removed instead of created</param>
            <remarks><p>
            The process calling this function must be running under the LocalSystem account. To advertise an
            application for per-user installation to a targeted user, the thread that calls this function must
            impersonate the targeted user. If the thread calling this function is not impersonating a targeted
            user, the application is advertised to all users for installation with elevated privileges.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprocessadvertisescript.asp">MsiProcessAdvertiseScript</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetProductInfoFromScript(System.String)">
            <summary>
            Gets product information for an installer script file.
            </summary>
            <param name="scriptFile">Path to a script file generated by
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32,System.Reflection.ProcessorArchitecture,System.Boolean)"/></param>
            <returns>ProductInstallation stub with advertise-related properties filled in.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">An invalid product property was requested</exception>
            <remarks><p>
            Only the following properties will be filled in in the returned object:<ul>
            <li><see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductCode"/></li>
            <li><see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedLanguage"/></li>
            <li><see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedVersion"/></li>
            <li><see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedProductName"/></li>
            <li><see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedPackageName"/></li>
            </ul>Other properties will be null.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproductinfofromscript.asp">MsiGetProductInfoFromScript</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetErrorMessage(System.Int32)">
            <summary>
            Gets a Windows Installer error message in the system default language.
            </summary>
            <param name="errorNumber">The error number.</param>
            <returns>The message string, or null if the error message is not found.</returns>
            <remarks><p>
            The returned string may have tokens such as [2] and [3] that are meant to be substituted
            with context-specific values.
            </p><p>
            Error numbers greater than 2000 refer to MSI "internal" errors, and are always
            returned in English.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetErrorMessage(System.Int32,System.Globalization.CultureInfo)">
            <summary>
            Gets a Windows Installer error message in a specified language.
            </summary>
            <param name="errorNumber">The error number.</param>
            <param name="culture">The locale for the message.</param>
            <returns>The message string, or null if the error message or locale is not found.</returns>
            <remarks><p>
            The returned string may have tokens such as [2] and [3] that are meant to be substituted
            with context-specific values.
            </p><p>
            Error numbers greater than 2000 refer to MSI "internal" errors, and are always
            returned in English.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetErrorMessage(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Gets a formatted Windows Installer error message in the system default language.
            </summary>
            <param name="errorRecord">Error record containing the error number in the first field, and
            error-specific parameters in the other fields.</param>
            <returns>The message string, or null if the error message is not found.</returns>
            <remarks><p>
            Error numbers greater than 2000 refer to MSI "internal" errors, and are always
            returned in English.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetErrorMessage(Microsoft.Deployment.WindowsInstaller.Record,System.Globalization.CultureInfo)">
            <summary>
            Gets a formatted Windows Installer error message in a specified language.
            </summary>
            <param name="errorRecord">Error record containing the error number in the first field, and
            error-specific parameters in the other fields.</param>
            <param name="culture">The locale for the message.</param>
            <returns>The message string, or null if the error message or locale is not found.</returns>
            <remarks><p>
            Error numbers greater than 2000 refer to MSI "internal" errors, and are always
            returned in English.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetFileVersion(System.String)">
            <summary>
            Gets the version string of the path specified using the format that the installer
            expects to find it in in the database.
            </summary>
            <param name="path">Path to the file</param>
            <returns>Version string in the "#.#.#.#" format, or an empty string if the file
            does not contain version information</returns>
            <exception cref="T:System.IO.FileNotFoundException">the file does not exist or could not be read</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfileversion.asp">MsiGetFileVersion</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetFileLanguage(System.String)">
            <summary>
            Gets the language string of the path specified using the format that the installer
            expects to find them in in the database.
            </summary>
            <param name="path">Path to the file</param>
            <returns>Language string in the form of a decimal language ID, or an empty string if the file
            does not contain a language ID</returns>
            <exception cref="T:System.IO.FileNotFoundException">the file does not exist or could not be read</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfileversion.asp">MsiGetFileVersion</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetFileHash(System.String,System.Int32[])">
            <summary>
            Gets a 128-bit hash of the specified file.
            </summary>
            <param name="path">Path to the file</param>
            <param name="hash">Integer array of length 4 which receives the
            four 32-bit parts of the hash value.</param>
            <exception cref="T:System.IO.FileNotFoundException">the file does not exist or
            could not be read</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfilehash.asp">MsiGetFileHash</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetShortcutTarget(System.String)">
            <summary>
            Examines a shortcut and returns its product, feature name, and component if available.
            </summary>
            <param name="shortcut">Full path to a shortcut</param>
            <returns>ShortcutTarget structure containing target product code, feature, and component code</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetshortcuttarget.asp">MsiGetShortcutTarget</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.VerifyPackage(System.String)">
            <summary>
            Verifies that the given file is an installation package.
            </summary>
            <param name="packagePath">Path to the package</param>
            <returns>True if the file is an installation package; false otherwise.</returns>
            <exception cref="T:System.IO.FileNotFoundException">the specified package file does not exist</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the package file could not be opened</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiverifypackage.asp">MsiVerifyPackage</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetPatchFileList(System.String,System.Collections.Generic.IList{System.String})">
            <summary>
            [MSI 4.0] Gets the list of files that can be updated by one or more patches.
            </summary>
            <param name="productCode">ProductCode (GUID) of the product which is
            the target of the patches</param>
            <param name="patches">list of file paths of one or more patches to be
            analyzed</param>
            <returns>List of absolute paths of files that can be updated when the
            patches are applied on this system.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetpatchfilelist.asp">MsiGetPatchFileList</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired">
            <summary>
            Indicates whether a system reboot is required after running an installation or configuration operation.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated">
            <summary>
            Indicates whether a system reboot has been initiated after running an installation or configuration operation.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Installer.Version">
            <summary>
            Gets the current version of the installer.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection">
            <summary>
            Accessor for information about features within the context of an installation session.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection.Contains(System.String)">
            <summary>
            Checks if the collection contains a feature.
            </summary>
            <param name="feature">name of the feature</param>
            <returns>true if the feature is in the collection, else false</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection.CopyTo(Microsoft.Deployment.WindowsInstaller.FeatureInfo[],System.Int32)">
            <summary>
            Copies the features into an array.
            </summary>
            <param name="array">array that receives the features</param>
            <param name="arrayIndex">offset into the array</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection.GetEnumerator">
            <summary>
            Enumerates the features in the collection.
            </summary>
            <returns>an enumerator over all features in the collection</returns>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection.Item(System.String)">
            <summary>
            Gets information about a feature within the context of an installation session.
            </summary>
            <param name="feature">name of the feature</param>
            <returns>feature object</returns>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection.Count">
            <summary>
            Gets the number of features defined for the product.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.FeatureInfo">
            <summary>
            Provides access to information about a feature within the context of an installation session.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.FeatureInfo.GetCost(System.Boolean,System.Boolean,Microsoft.Deployment.WindowsInstaller.InstallState)">
            <summary>
            Calculates the disk space required by the feature and its selected children and parent features.
            </summary>
            <param name="includeParents">If true, the parent features are included in the cost.</param>
            <param name="includeChildren">If true, the child features are included in the cost.</param>
            <param name="installState">Specifies the installation state.</param>
            <returns>The disk space requirement in bytes.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeaturecost.asp">MsiGetFeatureCost</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.Name">
            <summary>
            Gets the name of the feature (primary key in the Feature table).
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.CurrentState">
            <summary>
            Gets the current install state of the feature.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeaturestate.asp">MsiGetFeatureState</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.RequestState">
            <summary>
            Gets or sets the action state of the feature.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
            <remarks><p>
            When changing the feature action, the action state of all the Components linked to the changed
            Feature records are also updated appropriately, based on the new feature Select state.
            All Features can be configured at once by specifying the keyword ALL instead of a specific feature name.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeaturestate.asp">MsiGetFeatureState</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetfeaturestate.asp">MsiSetFeatureState</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.ValidStates">
            <summary>
            Gets a list of valid installation states for the feature.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeaturevalidstates.asp">MsiGetFeatureValidStates</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.Attributes">
            <summary>
            Gets or sets the attributes of the feature.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeatureinfo.asp">MsiGetFeatureInfo</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetfeatureattributes.asp">MsiSetFeatureAttributes</a>
            </p><p>
            Since the lpAttributes paramter of
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeatureinfo.asp">MsiGetFeatureInfo</a>
            does not contain an equivalent flag for <see cref="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.UIDisallowAbsent"/>, this flag will
            not be retrieved.
            </p><p>
            Since the dwAttributes parameter of 
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetfeatureattributes.asp">MsiSetFeatureAttributes</a>
            does not contain an equivalent flag for <see cref="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.UIDisallowAbsent"/>, the presence
            of this flag will be ignored.
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.Title">
            <summary>
            Gets the title of the feature.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeatureinfo.asp">MsiGetFeatureInfo</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.Description">
            <summary>
            Gets the description of the feature.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeatureinfo.asp">MsiGetFeatureInfo</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.FeatureInstallation">
            <summary>
            Represents an instance of a feature of an installed product.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.#ctor(System.String,System.String)">
            <summary>
            Creates a new FeatureInstallation instance for a feature of a product.
            </summary>
            <param name="featureName">feature name</param>
            <param name="productCode">ProductCode GUID</param>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.FeatureName">
            <summary>
            Gets the name of the feature.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.State">
            <summary>
            Gets the installed state of the feature.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiqueryfeaturestate.asp">MsiQueryFeatureState</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.Parent">
            <summary>
            Gets the parent of the feature, or null if the feature has no parent (it is a root feature).
            </summary>
            <remarks>
            Invocation of this property may be slightly costly for products with many features,
            because it involves an enumeration of all the features in the product.
            </remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.Usage">
            <summary>
            Gets the usage metrics for the feature.
            </summary>
            <remarks><p>
            If no usage metrics are recorded, the <see cref="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.UsageData.UseCount"/> value is 0.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeatureusage.asp">MsiGetFeatureUsage</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.UsageData">
            <summary>
            Holds data about the usage of a feature.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.UsageData.UseCount">
            <summary>
            Gets count of the number of times the feature has been used.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.UsageData.LastUsedDate">
            <summary>
            Gets the date the feature was last used.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.IEmbeddedUI">
            <summary>
            [MSI 4.5] Interface for an embedded external user interface for an installation.
            </summary>
            <remarks>
            Classes which implement this interface must have a public constructor that takes no parameters.
            </remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.IEmbeddedUI.Initialize(Microsoft.Deployment.WindowsInstaller.Session,System.String,Microsoft.Deployment.WindowsInstaller.InstallUIOptions@)">
            <summary>
            Initializes the embedded UI.
            </summary>
            <param name="session">Handle to the installer which can be used to get and set properties.
            The handle is only valid for the duration of this method call.</param>
            <param name="resourcePath">Path to the directory that contains all the files from the MsiEmbeddedUI table.</param>
            <param name="internalUILevel">On entry, contains the current UI level for the installation. After this
            method returns, the installer resets the UI level to the returned value of this parameter.</param>
            <returns>True if the embedded UI was successfully initialized; false if the installation
            should continue without the embedded UI.</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">The installation was canceled by the user.</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The embedded UI failed to initialize and
            causes the installation to fail.</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/initializeembeddedui.asp">InitializeEmbeddedUI</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.IEmbeddedUI.ProcessMessage(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record,Microsoft.Deployment.WindowsInstaller.MessageButtons,Microsoft.Deployment.WindowsInstaller.MessageIcon,Microsoft.Deployment.WindowsInstaller.MessageDefaultButton)">
            <summary>
            Processes information and progress messages sent to the user interface.
            </summary>
            <param name="messageType">Message type.</param>
            <param name="messageRecord">Record that contains message data.</param>
            <param name="buttons">Message buttons.</param>
            <param name="icon">Message box icon.</param>
            <param name="defaultButton">Message box default button.</param>
            <returns>Result of processing the message.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/embeddeduihandler.asp">EmbeddedUIHandler</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.IEmbeddedUI.Shutdown">
            <summary>
            Shuts down the embedded UI at the end of the installation.
            </summary>
            <remarks>
            If the installation was canceled during initialization, this method will not be called.
            If the installation was canceled or failed at any later point, this method will be called at the end.
            <p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/shutdownembeddedui.asp">ShutdownEmbeddedUI</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.Installation">
            <summary>
            Subclasses of this abstract class represent a unique instance of a
            registered product or patch installation.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Installation.UserSid">
            <summary>
            Gets the user security identifier (SID) under which this product or patch
            installation is available.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Installation.Context">
            <summary>
            Gets the user context of this product or patch installation.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Installation.SourceList">
            <summary>
            Gets the source list of this product or patch installation.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Installation.IsInstalled">
            <summary>
            Gets a value indicating whether this product or patch is installed on the current system.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Installation.Item(System.String)">
            <summary>
            Gets a property about the product or patch installation.
            </summary>
            <param name="propertyName">Name of the property being retrieved.</param>
            <returns></returns>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallCost">
            <summary>
            Represents a per-drive disk space cost for an installation.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallCost.#ctor(System.String,System.Int64,System.Int64)">
            <summary>
            Creates a new InstallCost object.
            </summary>
            <param name="driveName">name of the drive this cost data applies to</param>
            <param name="cost">installation cost on this drive, as a number of bytes</param>
            <param name="tempCost">temporary disk space required on this drive, as a number of bytes</param>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallCost.DriveName">
            <summary>
            The name of the drive this cost data applies to.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallCost.Cost">
            <summary>
            The installation cost on this drive, as a number of bytes.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallCost.TempCost">
            <summary>
            The temporary disk space required on this drive, as a number of bytes.
            </summary>
            <remarks><p>
            This temporary space requirement is space needed only for the duration
            of the installation, over the final footprint on disk.
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler">
            <summary>
            Receives an exception from
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)"/>
            indicating the reason a particular patch is not applicable to a product.
            </summary>
            <param name="patch">MSP file path, XML file path, or XML blob that was passed to 
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)"/></param>
            <param name="exception">exception indicating the reason the patch is not applicable</param>
            <remarks><p>
            If <paramref name="exception"/> is an <see cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException"/> or subclass, then
            its <see cref="P:Microsoft.Deployment.WindowsInstaller.InstallerException.ErrorCode"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.InstallerException.Message"/>
            properties will indicate a more specific reason the patch was not applicable.
            </p><p>
            The <paramref name="exception"/> could also be a FileNotFoundException if the
            patch string was a file path.
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.Transaction">
            <summary>
            [MSI 4.5] Handle to a multi-session install transaction.
            </summary>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msibegintransaction.asp">MsiBeginTransaction</a>
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msijointransaction.asp">MsiJoinTransaction</a>
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiendtransaction.asp">MsiEndTransaction</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.TransactionAttributes)">
            <summary>
            [MSI 4.5] Begins transaction processing of a multi-package installation.
            </summary>
            <param name="name">Name of the multi-package installation.</param>
            <param name="attributes">Select optional behavior when beginning the transaction.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The transaction could not be initialized.</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msibegintransaction.asp">MsiBeginTransaction</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.#ctor(System.String,System.IntPtr[],System.Boolean)">
            <summary>
            Internal constructor.
            </summary>
            <remarks>
            The second parameter is an array in order to receive multiple values from the initialization method.
            </remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.FromHandle(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new Transaction object from an integer handle.
            </summary>
            <param name="handle">Integer transaction handle</param>
            <param name="ownsHandle">true to close the handle when this object is disposed</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.Join(Microsoft.Deployment.WindowsInstaller.TransactionAttributes)">
            <summary>
            Makes the current process the owner of the multi-package installation transaction.
            </summary>
            <param name="attributes">Select optional behavior when joining the transaction.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">The transaction handle is not valid.</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The transaction could not be joined.</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msijointransaction.asp">MsiJoinTransaction</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.Commit">
            <summary>
            Ends the install transaction and commits all changes to the system belonging to the transaction.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The transaction could not be committed.</exception>
            <remarks><p>
            Runs any Commit Custom Actions and commits to the system any changes to Win32 or common language
            runtime assemblies. Deletes the rollback script, and after using this option, the transaction's
            changes can no longer be undone with a Rollback Installation.
            </p><p>
            This method can only be called by the current owner of the transaction.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiendtransaction.asp">MsiEndTransaction</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.Rollback">
            <summary>
            Ends the install transaction and undoes changes to the system belonging to the transaction.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The transaction could not be rolled back.</exception>
            <remarks><p>
            This method can only be called by the current owner of the transaction.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiendtransaction.asp">MsiEndTransaction</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Transaction.Name">
            <summary>
            Gets the name of the transaction.
            </summary>
        </member>
        <member name="E:Microsoft.Deployment.WindowsInstaller.Transaction.OwnerChanged">
            <summary>
            Notifies listeners when the process that owns the transaction changed.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.MediaDisk">
            <summary>
            Represents a media disk source of a product or a patch.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.MediaDisk.#ctor(System.Int32,System.String,System.String)">
            <summary>
            Creates a new media disk.
            </summary>
            <param name="diskId"></param>
            <param name="volumeLabel"></param>
            <param name="diskPrompt"></param>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.MediaDisk.DiskId">
            <summary>
            Gets or sets the disk id of the media disk.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.MediaDisk.VolumeLabel">
            <summary>
            Gets or sets the volume label of the media disk.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.MediaDisk.DiskPrompt">
            <summary>
            Gets or sets the disk prompt of the media disk.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.PatchInstallation">
            <summary>
            The Patch object represents a unique instance of a patch that has been
            registered or applied.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.PatchInstallation.GetPatches(System.String,System.String,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts,Microsoft.Deployment.WindowsInstaller.PatchStates)">
            <summary>
            Enumerates patch installations based on certain criteria.
            </summary>
            <param name="patchCode">PatchCode (GUID) of the patch to be enumerated. Only
            instances of patches within the scope of the context specified by the
            <paramref name="userSid"/> and <paramref name="context"/> parameters will be
            enumerated. This parameter may be set to null to enumerate all patches in the specified
            context.</param>
            <param name="targetProductCode">ProductCode (GUID) product whose patches are to be
            enumerated. If non-null, patch enumeration is restricted to instances of this product
            within the specified context. If null, the patches for all products under the specified
            context are enumerated.</param>
            <param name="userSid">Specifies a security identifier (SID) that restricts the context
            of enumeration. A SID value other than s-1-1-0 is considered a user SID and restricts
            enumeration to the current user or any user in the system. The special SID string
            s-1-1-0 (Everyone) specifies enumeration across all users in the system. This parameter
            can be set to null to restrict the enumeration scope to the current user. When
            <paramref name="installContext"/> is set to the machine context only,
            <paramref name="userSid"/> must be null.</param>
            <param name="context">Specifies the user context.</param>
            <param name="states">The <see cref="T:Microsoft.Deployment.WindowsInstaller.PatchStates"/> of patches to return.</param>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumpatchesex.asp">MsiEnumPatchesEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.PatchInstallation.#ctor(System.String,System.String)">
            <summary>
            Creates a new object for accessing information about a patch installation on the current system.
            </summary>
            <param name="patchCode">Patch code (GUID) of the patch.</param>
            <param name="productCode">ProductCode (GUID) the patch has been applied to.
            This parameter may be null for patches that are registered only and not yet
            applied to any product.</param>
            <remarks><p>
            All available user contexts will be queried.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.PatchInstallation.#ctor(System.String,System.String,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)">
            <summary>
            Creates a new object for accessing information about a patch installation on the current system.
            </summary>
            <param name="patchCode">Registered patch code (GUID) of the patch.</param>
            <param name="productCode">ProductCode (GUID) the patch has been applied to.
            This parameter may be null for patches that are registered only and not yet
            applied to any product.</param>
            <param name="userSid">The specific user, when working in a user context.  This
            parameter may be null to indicate the current user.  The parameter must be null
            when working in a machine context.</param>
            <param name="context">The user context. The calling process must have administrative
            privileges to get information for a product installed for a user other than the
            current user.</param>
            <remarks><p>
            If the <paramref name="productCode"/> is null, the Patch object may
            only be used to read and update the patch's SourceList information.
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.AllPatches">
            <summary>
            Enumerates all patch installations on the system.
            </summary>
            <returns>Enumeration of patch objects.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumpatches.asp">MsiEnumPatches</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.PatchCode">
            <summary>
            Gets the patch code (GUID) of the patch.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.ProductCode">
            <summary>
            Gets the ProductCode (GUID) of the product.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.IsInstalled">
            <summary>
            Gets a value indicating whether this patch is currently installed.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.IsObsoleted">
            <summary>
            Gets a value indicating whether this patch is marked as obsolte.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.IsSuperseded">
            <summary>
            Gets a value indicating whether this patch is present but has been
            superseded by a more recent installed patch.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.State">
            <summary>
            Gets the installation state of this instance of the patch.
            </summary>
            <exception cref="T:System.ArgumentException">An unknown patch was requested</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.LocalPackage">
            <summary>
            Gets the cached patch file that the product uses.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.Transforms">
            <summary>
            Gets the set of patch transforms that the last patch
            installation applied to the product.
            </summary>
            <remarks><p>
            This value may not be available for per-user, non-managed applications
            if the user is not logged on.
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.InstallDate">
            <summary>
            Gets the date and time when the patch is applied to the product.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.Uninstallable">
            <summary>
            True patch is marked as possible to uninstall from the product.
            </summary>
            <remarks><p>
            Even if this property is true, the installer can still block the
            uninstallation if this patch is required by another patch that
            cannot be uninstalled.
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.DisplayName">
            <summary>
            Get the registered display name for the patch.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.MoreInfoUrl">
            <summary>
            Gets the registered support information URL for the patch.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.Item(System.String)">
            <summary>
            Gets information about a specific patch installation. 
            </summary>
            <param name="propertyName">The property being retrieved; see remarks for valid properties.</param>
            <returns>The property value, or an empty string if the property is not set for the patch.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">An unknown patch or property was requested</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetpatchinfo.asp">MsiGetPatchInfo</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetpatchinfoex.asp">MsiGetPatchInfoEx</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ProductInstallation">
            <summary>
            Represents a unique instance of a product that
            is either advertised, installed or unknown.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.GetRelatedProducts(System.String)">
            <summary>
            Gets the set of all products with a specified upgrade code. This method lists the
            currently installed and advertised products that have the specified UpgradeCode
            property in their Property table.
            </summary>
            <param name="upgradeCode">Upgrade code of related products</param>
            <returns>Enumeration of product codes</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumrelatedproducts.asp">MsiEnumRelatedProducts</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.GetProducts(System.String,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)">
            <summary>
            Enumerates product installations based on certain criteria.
            </summary>
            <param name="productCode">ProductCode (GUID) of the product instances to be enumerated. Only
            instances of products within the scope of the context specified by the
            <paramref name="userSid"/> and <paramref name="installContext"/> parameters will be
            enumerated. This parameter may be set to null to enumerate all products in the specified
            context.</param>
            <param name="userSid">Specifies a security identifier (SID) that restricts the context
            of enumeration. A SID value other than s-1-1-0 is considered a user SID and restricts
            enumeration to the current user or any user in the system. The special SID string
            s-1-1-0 (Everyone) specifies enumeration across all users in the system. This parameter
            can be set to null to restrict the enumeration scope to the current user. When
            <paramref name="context"/> is set to the machine context only,
            <paramref name="userSid"/> must be null.</param>
            <param name="context">Specifies the user context.</param>
            <returns>An enumeration of product objects for enumerated product instances.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumproductsex.asp">MsiEnumProductsEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.#ctor(System.String)">
            <summary>
            Creates a new object for accessing information about a product installation on the current system.
            </summary>
            <param name="productCode">ProductCode (GUID) of the product.</param>
            <remarks><p>
            All available user contexts will be queried.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.#ctor(System.String,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)">
            <summary>
            Creates a new object for accessing information about a product installation on the current system.
            </summary>
            <param name="productCode">ProductCode (GUID) of the product.</param>
            <param name="userSid">The specific user, when working in a user context.  This
            parameter may be null to indicate the current user.  The parameter must be null
            when working in a machine context.</param>
            <param name="context">The user context. The calling process must have administrative
            privileges to get information for a product installed for a user other than the
            current user.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.GetFeatureState(System.String)">
            <summary>
            Gets the installed state for a product feature.
            </summary>
            <param name="feature">The feature being queried; identifier from the
            Feature table</param>
            <returns>Installation state of the feature for the product instance: either
            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Local"/>, <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Source"/>,
            or <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Advertised"/>.</returns>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiqueryfeaturestate.asp">MsiQueryFeatureState</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiqueryfeaturestateex.asp">MsiQueryFeatureStateEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.GetComponentState(System.String)">
            <summary>
            Gets the installed state for a product component.
            </summary>
            <param name="component">The component being queried; GUID of the component
            as found in the ComponentId column of the Component table.</param>
            <returns>Installation state of the component for the product instance: either
            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Local"/> or <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Source"/>.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiquerycomponnetstate.asp">MsiQueryComponentState</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.CollectUserInfo">
            <summary>
            Obtains and stores the user information and product ID from an installation wizard.
            </summary>
            <remarks><p>
            This method is typically called by an application during the first run of the application. The application
            first gets the <see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductId"/> or <see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.RegOwner"/>.
            If those properties are missing, the application calls CollectUserInfo.
            CollectUserInfo opens the product's installation package and invokes a wizard sequence that collects
            user information. Upon completion of the sequence, user information is registered. Since this API requires
            an authored user interface, the user interface level should be set to full by calling
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/> as <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Full"/>.
            </p><p>
            The CollectUserInfo method invokes a FirstRun dialog from the product installation database.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicollectuserinfo.asp">MsiCollectUserInfo</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ParseVersion(System.String)">
            <summary>
            Some products might write some invalid/nonstandard version strings to the registry.
            This method tries to get the best data it can.
            </summary>
            <param name="ver">Version string retrieved from the registry.</param>
            <returns>Version object, or null if the version string is completely invalid.</returns>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AllProducts">
            <summary>
            Enumerates all product installations on the system.
            </summary>
            <returns>An enumeration of product objects.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumproducts.asp">MsiEnumProducts</a>,
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.Features">
            <summary>
            Gets the set of published features for the product.
            </summary>
            <returns>Enumeration of published features for the product.</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
            <remarks><p>
            Because features are not ordered, any new feature has an arbitrary index, meaning
            this property can return features in any order.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumfeatures.asp">MsiEnumFeatures</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductCode">
            <summary>
            Gets the ProductCode (GUID) of the product.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.IsInstalled">
            <summary>
            Gets a value indicating whether this product is installed on the current system.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.IsAdvertised">
            <summary>
            Gets a value indicating whether this product is advertised on the current system.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.IsElevated">
            <summary>
            Checks whether the product is installed with elevated privileges. An application is called
            a "managed application" if elevated (system) privileges are used to install the application.
            </summary>
            <returns>True if the product is elevated; false otherwise</returns>
            <remarks><p>
            Note that this property does not take into account policies such as AlwaysInstallElevated,
            but verifies that the local system owns the product's registry data.
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.SourceList">
            <summary>
            Gets the source list of this product installation.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.HelpLink">
            <summary>
            The support link.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.HelpTelephone">
            <summary>
            The support telephone.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.InstallDate">
            <summary>
            Date and time the product was installed.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductName">
            <summary>
            The installed product name.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.InstallLocation">
            <summary>
            The installation location.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.InstallSource">
            <summary>
            The installation source.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.LocalPackage">
            <summary>
            The local cached package.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.Publisher">
            <summary>
            The publisher.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.UrlInfoAbout">
            <summary>
            URL about information.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.UrlUpdateInfo">
            <summary>
            The URL update information.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductVersion">
            <summary>
            The product version.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductId">
            <summary>
            The product identifier.
            </summary>
            <remarks><p>
            For more information, see
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/productid.asp">ProductID</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.RegCompany">
            <summary>
            The company that is registered to use the product.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.RegOwner">
            <summary>
            The owner who is registered to use the product.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedTransforms">
            <summary>
            Transforms.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedLanguage">
            <summary>
            Product language.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedProductName">
            <summary>
            Human readable product name.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedPerMachine">
            <summary>
            True if the product is advertised per-machine;
            false if it is per-user or not advertised.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedPackageCode">
            <summary>
            Identifier of the package that a product is installed from.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedVersion">
            <summary>
            Version of the advertised product.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedProductIcon">
            <summary>
            Primary icon for the package.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedPackageName">
            <summary>
            Name of the installation package for the advertised product.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.PrivilegedPatchingAuthorized">
            <summary>
            True if the advertised product can be serviced by
            non-administrators without elevation.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.Item(System.String)">
            <summary>
            Gets information about an installation of a product. 
            </summary>
            <param name="propertyName">Name of the property being retrieved.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">An unknown product or property was requested</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproductinfo.asp">MsiGetProductInfo</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproductinfoex.asp">MsiGetProductInfoEx</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.Record">
            <summary>
            The Record object is a container for holding and transferring a variable number of values.
            Fields within the record are numerically indexed and can contain strings, integers, streams,
            and null values. Record fields are indexed starting with 1.  Field 0 is a special format field.
            </summary>
            <remarks><p>
            Most methods on the Record class have overloads that allow using either a number
            or a name to designate a field. However note that field names only exist when the
            Record is directly returned from a query on a database. For other records, attempting
            to access a field by name will result in an InvalidOperationException.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.#ctor(System.Int32)">
            <summary>
            Creates a new record object with the requested number of fields.
            </summary>
            <param name="fieldCount">Required number of fields, which may be 0.
            The maximum number of fields in a record is limited to 65535.</param>
            <remarks><p>
            The Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicreaterecord.asp">MsiCreateRecord</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.#ctor(System.Object[])">
            <summary>
            Creates a new record object, providing values for an arbitrary number of fields.
            </summary>
            <param name="fields">The values of the record fields.  The parameters should be of type Int16, Int32 or String</param>
            <remarks><p>
            The Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicreaterecord.asp">MsiCreateRecord</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.FromHandle(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new Record object from an integer record handle.
            </summary>
            <remarks><p>
            This method is only provided for interop purposes.  A Record object
            should normally be obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>
            other methods.
            <p>The handle will be closed when this object is disposed or finalized.</p>
            </p></remarks>
            <param name="handle">Integer record handle</param>
            <param name="ownsHandle">true to close the handle when this object is disposed or finalized</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.Clear">
            <summary>
            Sets all fields in a record to null.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordcleardata.asp">MsiRecordClearData</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.IsNull(System.Int32)">
            <summary>
            Reports whether a record field is null.
            </summary>
            <param name="field">Specifies the field to check.</param>
            <returns>True if the field is null, false otherwise.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordisnull.asp">MsiRecordIsNull</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.IsNull(System.String)">
            <summary>
            Reports whether a record field is null.
            </summary>
            <param name="fieldName">Specifies the field to check.</param>
            <returns>True if the field is null, false otherwise.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetDataSize(System.Int32)">
            <summary>
            Gets the length of a record field. The count does not include the terminating null.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            The returned data size is 0 if the field is null, non-existent,
            or an internal object pointer. The method also returns 0 if the handle is not a valid
            Record handle.
            </p><p>
            If the data is in integer format, the property returns 2 or 4.
            </p><p>
            If the data is in string format, the property returns the character count
            (not including the NULL terminator).
            </p><p>
            If the data is in stream format, the property returns the byte count.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecorddatasize.asp">MsiRecordDataSize</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetDataSize(System.String)">
            <summary>
            Gets the length of a record field. The count does not include the terminating null.
            </summary>
            <param name="fieldName">Specifies the field to check.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
            <remarks><p>The returned data size is 0 if the field is null, non-existent,
            or an internal object pointer. The method also returns 0 if the handle is not a valid
            Record handle.
            </p><p>
            If the data is in integer format, the property returns 2 or 4.
            </p><p>
            If the data is in string format, the property returns the character count
            (not including the NULL terminator).
            </p><p>
            If the data is in stream format, the property returns the byte count.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetInteger(System.Int32)">
            <summary>
            Gets a field value as an integer.
            </summary>
            <param name="field">Specifies the field to retrieve.</param>
            <returns>Integer value of the field, or 0 if the field is null.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetinteger.asp">MsiRecordGetInteger</a>
            </p></remarks>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetNullableInteger(System.Int32)"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetInteger(System.String)">
            <summary>
            Gets a field value as an integer.
            </summary>
            <param name="fieldName">Specifies the field to retrieve.</param>
            <returns>Integer value of the field, or 0 if the field is null.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetNullableInteger(System.String)"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetNullableInteger(System.Int32)">
            <summary>
            Gets a field value as an integer.
            </summary>
            <param name="field">Specifies the field to retrieve.</param>
            <returns>Integer value of the field, or null if the field is null.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetinteger.asp">MsiRecordGetInteger</a>
            </p></remarks>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetInteger(System.Int32)"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetNullableInteger(System.String)">
            <summary>
            Gets a field value as an integer.
            </summary>
            <param name="fieldName">Specifies the field to retrieve.</param>
            <returns>Integer value of the field, or null if the field is null.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetInteger(System.String)"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetInteger(System.Int32,System.Int32)">
            <summary>
            Sets the value of a field to an integer.
            </summary>
            <param name="field">Specifies the field to set.</param>
            <param name="value">new value of the field</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetinteger.asp">MsiRecordSetInteger</a>
            </p></remarks>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetNullableInteger(System.Int32,System.Nullable{System.Int32})"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetInteger(System.String,System.Int32)">
            <summary>
            Sets the value of a field to an integer.
            </summary>
            <param name="fieldName">Specifies the field to set.</param>
            <param name="value">new value of the field</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetNullableInteger(System.String,System.Nullable{System.Int32})"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetNullableInteger(System.Int32,System.Nullable{System.Int32})">
            <summary>
            Sets the value of a field to a nullable integer.
            </summary>
            <param name="field">Specifies the field to set.</param>
            <param name="value">new value of the field</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetinteger.asp">MsiRecordSetInteger</a>
            </p></remarks>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetInteger(System.Int32,System.Int32)"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetNullableInteger(System.String,System.Nullable{System.Int32})">
            <summary>
            Sets the value of a field to a nullable integer.
            </summary>
            <param name="fieldName">Specifies the field to set.</param>
            <param name="value">new value of the field</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetInteger(System.String,System.Int32)"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetString(System.Int32)">
            <summary>
            Gets a field value as a string.
            </summary>
            <param name="field">Specifies the field to retrieve.</param>
            <returns>String value of the field, or an empty string if the field is null.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetstring.asp">MsiRecordGetString</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetString(System.String)">
            <summary>
            Gets a field value as a string.
            </summary>
            <param name="fieldName">Specifies the field to retrieve.</param>
            <returns>String value of the field, or an empty string if the field is null.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetString(System.Int32,System.String)">
            <summary>
            Sets the value of a field to a string.
            </summary>
            <param name="field">Specifies the field to set.</param>
            <param name="value">new value of the field</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetstring.asp">MsiRecordSetString</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetString(System.String,System.String)">
            <summary>
            Sets the value of a field to a string.
            </summary>
            <param name="fieldName">Specifies the field to set.</param>
            <param name="value">new value of the field</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.Int32,System.String)">
            <summary>
            Reads a record stream field into a file.
            </summary>
            <param name="field">Specifies the field of the Record to get.</param>
            <param name="filePath">Specifies the path to the file to contain the stream.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <exception cref="T:System.NotSupportedException">Attempt to extract a storage from a database open
            in read-write mode, or from a database without an associated file path</exception>
            <remarks><p>
            This method is capable of directly extracting substorages. To do so, first select both the
            `Name` and `Data` column of the `_Storages` table, then get the stream of the `Data` field.
            However, substorages may only be extracted from a database that is open in read-only mode.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordreadstream.asp">MsiRecordReadStream</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.String,System.String)">
            <summary>
            Reads a record stream field into a file.
            </summary>
            <param name="fieldName">Specifies the field of the Record to get.</param>
            <param name="filePath">Specifies the path to the file to contain the stream.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
            <exception cref="T:System.NotSupportedException">Attempt to extract a storage from a database open
            in read-write mode, or from a database without an associated file path</exception>
            <remarks><p>
            This method is capable of directly extracting substorages. To do so, first select both the
            `Name` and `Data` column of the `_Storages` table, then get the stream of the `Data` field.
            However, substorages may only be extracted from a database that is open in read-only mode.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.Int32)">
            <summary>
            Gets a record stream field.
            </summary>
            <param name="field">Specifies the field of the Record to get.</param>
            <returns>A Stream that reads the field data.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            This method is not capable of reading substorages. To extract a substorage,
            use <see cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.Int32,System.String)"/>.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordreadstream.asp">MsiRecordReadStream</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.String)">
            <summary>
            Gets a record stream field.
            </summary>
            <param name="fieldName">Specifies the field of the Record to get.</param>
            <returns>A Stream that reads the field data.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
            <remarks><p>
            This method is not capable of reading substorages. To extract a substorage,
            use <see cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.String,System.String)"/>.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.Int32,System.String)">
            <summary>
            Sets a record stream field from a file. Stream data cannot be inserted into temporary fields.
            </summary>
            <param name="field">Specifies the field of the Record to set.</param>
            <param name="filePath">Specifies the path to the file containing the stream.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            The contents of the specified file are read into a stream object. The stream persists if
            the Record is inserted into the Database and the Database is committed.
            </p><p>
            To reset the stream to its beginning you must pass in null for filePath.
            Do not pass an empty string, "", to reset the stream.
            </p><p>
            Setting a stream with this method is more efficient than setting a field to a
            FileStream object.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetstream.asp">MsiRecordsetStream</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.String,System.String)">
            <summary>
            Sets a record stream field from a file. Stream data cannot be inserted into temporary fields.
            </summary>
            <param name="fieldName">Specifies the field name of the Record to set.</param>
            <param name="filePath">Specifies the path to the file containing the stream.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
            <remarks><p>
            The contents of the specified file are read into a stream object. The stream persists if
            the Record is inserted into the Database and the Database is committed.
            To reset the stream to its beginning you must pass in null for filePath.
            Do not pass an empty string, "", to reset the stream.
            </p><p>
            Setting a stream with this method is more efficient than setting a field to a
            FileStream object.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.Int32,System.IO.Stream)">
            <summary>
            Sets a record stream field from a Stream object. Stream data cannot be inserted into temporary fields.
            </summary>
            <param name="field">Specifies the field of the Record to set.</param>
            <param name="stream">Specifies the stream data.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            The stream persists if the Record is inserted into the Database and the Database is committed.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetstream.asp">MsiRecordsetStream</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.String,System.IO.Stream)">
            <summary>
            Sets a record stream field from a Stream object. Stream data cannot be inserted into temporary fields.
            </summary>
            <param name="fieldName">Specifies the field name of the Record to set.</param>
            <param name="stream">Specifies the stream data.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
            of the named fields in the Record.</exception>
            <remarks><p>
            The stream persists if the Record is inserted into the Database and the Database is committed.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.ToString">
            <summary>
            Gets a formatted string representation of the Record.
            </summary>
            <returns>A formatted string representation of the Record.</returns>
            <remarks><p>
            If field 0 of the Record is set to a nonempty string, it is used to format the data in the Record.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
            </p></remarks>
            <seealso cref="P:Microsoft.Deployment.WindowsInstaller.Record.FormatString"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Session.FormatRecord(Microsoft.Deployment.WindowsInstaller.Record)"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.ToString(System.IFormatProvider)">
            <summary>
            Gets a formatted string representation of the Record, optionally using a Session to format properties.
            </summary>
            <param name="provider">an optional Session instance that will be used to lookup any
            properties in the Record's format string</param>
            <returns>A formatted string representation of the Record.</returns>
            <remarks><p>
            If field 0 of the Record is set to a nonempty string, it is used to format the data in the Record.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
            </p></remarks>
            <seealso cref="P:Microsoft.Deployment.WindowsInstaller.Record.FormatString"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Session.FormatRecord(Microsoft.Deployment.WindowsInstaller.Record)"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.ToString(System.String)">
            <summary>
            Gets a formatted string representation of the Record.
            </summary>
            <param name="format">String to be used to format the data in the Record,
            instead of the Record's format string.</param>
            <returns>A formatted string representation of the Record.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.ToString(System.String,System.IFormatProvider)">
            <summary>
            Gets a formatted string representation of the Record, optionally using a Session to format properties.
            </summary>
            <param name="format">String to be used to format the data in the Record,
            instead of the Record's format string.</param>
            <param name="provider">an optional Session instance that will be used to lookup any
            properties in the Record's format string</param>
            <returns>A formatted string representation of the Record.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
            </p></remarks>
            <seealso cref="P:Microsoft.Deployment.WindowsInstaller.Record.FormatString"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Session.FormatRecord(Microsoft.Deployment.WindowsInstaller.Record)"/>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Record.IsFormatStringInvalid">
            <summary>
            IsFormatStringInvalid is set from several View methods that invalidate the FormatString
            and used to determine behavior during Record.ToString().
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Record.FieldCount">
            <summary>
            Gets the number of fields in a record.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetfieldcount.asp">MsiRecordGetFieldCount</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Record.FormatString">
            <summary>
            Gets or sets field 0 of the Record, which is the format string.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Record.Item(System.String)">
            <summary>
            Gets or sets a record field value.
            </summary>
            <param name="fieldName">Specifies the name of the field of the Record to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The name does not match any known field of the Record.</exception>
            <remarks><p>
            When getting a field, the type of the object returned depends on the type of the Record field.
            The object will be one of: Int16, Int32, String, Stream, or null.
            </p><p>
            When setting a field, the type of the object provided will be converted to match the View
            query that returned the record, or if Record was not returned from a view then the type of
            the object provided will determine the type of the Record field. The object should be one of:
            Int16, Int32, String, Stream, or null.
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Record.Item(System.Int32)">
            <summary>
            Gets or sets a record field value.
            </summary>
            <param name="field">Specifies the field of the Record to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
            number of fields in the Record.</exception>
            <remarks><p>
            Record fields are indexed starting with 1.  Field 0 is a special format field.
            </p><p>
            When getting a field, the type of the object returned depends on the type of the Record field.
            The object will be one of: Int16, Int32, String, Stream, or null.  If the Record was returned
            from a View, the type will match that of the field from the View query.  Otherwise, the type
            will match the type of the last value set for the field.
            </p><p>
            When setting a field, the type of the object provided will be converted to match the View
            query that returned the Record, or if Record was not returned from a View then the type of
            the object provided will determine the type of the Record field. The object should be one of:
            Int16, Int32, String, Stream, or null.
            </p><p>
            The type-specific getters and setters are slightly more efficient than this property, since
            they don't have to do the extra work to infer the value's type every time.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetinteger.asp">MsiRecordGetInteger</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetstring.asp">MsiRecordGetString</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetinteger.asp">MsiRecordSetInteger</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetstring.asp">MsiRecordSetString</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.RemoteMsiFunctionId">
            <summary>
            Assigns ID numbers to the MSI APIs that are remotable.
            </summary>
            <remarks><p>
            This enumeration MUST stay in sync with the
            unmanaged equivalent in RemoteMsiSession.h!
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.MsiRemoteInvoke">
            <summary>
            Defines the signature of the native function
            in SfxCA.dll that implements the remoting call.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.RemotableNativeMethods">
            <summary>
            Redirects native API calls to either the normal NativeMethods class
            or to out-of-proc calls via the remoting channel.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.RemotableNativeMethods.RemotingEnabled">
            <summary>
            Checks if the current process is using remoting to access the
            MSI session and database APIs.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.RemotableNativeMethods.RemotingDelegate">
            <summary>
            Sets a delegate that is used to make remote API calls.
            </summary>
            <remarks><p>
            The implementation of this delegate is provided by the
            custom action host DLL.
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.Session">
            <summary>
            The Session object controls the installation process. It opens the
            install database, which contains the installation tables and data.
            </summary>
            <remarks><p>
            This object is associated with a standard set of action functions,
            each performing particular operations on data from one or more tables. Additional
            custom actions may be added for particular product installations. The basic engine
            function is a sequencer that fetches sequential records from a designated sequence
            table, evaluates any specified condition expression, and executes the designated
            action. Actions not recognized by the engine are deferred to the UI handler object
            for processing, usually dialog box sequences.
            </p><p>
            Note that only one Session object can be opened by a single process.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.FromHandle(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new Session object from an integer session handle.
            </summary>
            <param name="handle">Integer session handle</param>
            <param name="ownsHandle">true to close the handle when this object is disposed or finalized</param>
            <remarks><p>
            This method is only provided for interop purposes.  A Session object
            should normally be obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.OpenPackage(Microsoft.Deployment.WindowsInstaller.Database,System.Boolean)"/>
            or <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.OpenProduct(System.String)"/>.
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.Message(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Performs any enabled logging operations and defers execution to the UI handler
            object associated with the engine.
            </summary>
            <param name="messageType">Type of message to be processed</param>
            <param name="record">Contains message-specific fields</param>
            <returns>A message-dependent return value</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session or Record handle is invalid</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">an invalid message kind is specified</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the message-handler failed for an unknown reason</exception>
            <remarks><p>
            Logging may be selectively enabled for the various message types.
            See the <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String)"/> method.
            </p><p>
            If record field 0 contains a formatting string, it is used to format the data in
            the other fields. Else if the message is an error, warning, or user message, an attempt
            is made to find a message template in the Error table for the current database using the
            error number found in field 1 of the record for message types and return values.
            </p><p>
            The <paramref name="messageType"/> parameter may also include message-box flags from
            the following enumerations: System.Windows.Forms.MessageBoxButtons,
            System.Windows.Forms.MessageBoxDefaultButton, System.Windows.Forms.MessageBoxIcon.  These
            flags can be combined with the InstallMessage with a bitwise OR.
            </p><p>
            Note, this method never returns Cancel or Error values.  Instead, appropriate
            exceptions are thrown in those cases.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprocessmessage.asp">MsiProcessMessage</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.Log(System.String)">
            <summary>
            Writes a message to the log, if logging is enabled.
            </summary>
            <param name="msg">The line to be written to the log</param>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprocessmessage.asp">MsiProcessMessage</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.Log(System.String,System.Object[])">
            <summary>
            Writes a formatted message to the log, if logging is enabled.
            </summary>
            <param name="format">The line to be written to the log, containing 0 or more format specifiers</param>
            <param name="args">An array containing 0 or more objects to be formatted</param>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprocessmessage.asp">MsiProcessMessage</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.EvaluateCondition(System.String)">
            <summary>
            Evaluates a logical expression containing symbols and values.
            </summary>
            <param name="condition">conditional expression</param>
            <returns>The result of the condition evaluation</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentNullException">the condition is null or empty</exception>
            <exception cref="T:System.InvalidOperationException">the conditional expression is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msievaluatecondition.asp">MsiEvaluateCondition</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.EvaluateCondition(System.String,System.Boolean)">
            <summary>
            Evaluates a logical expression containing symbols and values, specifying a default
            value to be returned in case the condition is empty.
            </summary>
            <param name="condition">conditional expression</param>
            <param name="defaultValue">value to return if the condition is empty</param>
            <returns>The result of the condition evaluation</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.InvalidOperationException">the conditional expression is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msievaluatecondition.asp">MsiEvaluateCondition</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.Format(System.String)">
            <summary>
            Formats a string containing installer properties.
            </summary>
            <param name="format">A format string containing property tokens</param>
            <returns>A formatted string containing property data</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Record handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.FormatRecord(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Returns a formatted string from record data.
            </summary>
            <param name="record">Record object containing a template and data to be formatted.
            The template string must be set in field 0 followed by any referenced data parameters.</param>
            <returns>A formatted string containing the record data</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Record handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.FormatRecord(Microsoft.Deployment.WindowsInstaller.Record,System.String)">
            <summary>
            Returns a formatted string from record data using a specified format.
            </summary>
            <param name="record">Record object containing a template and data to be formatted</param>
            <param name="format">Format string to be used instead of field 0 of the Record</param>
            <returns>A formatted string containing the record data</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Record handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.GetProductProperty(System.String)">
            <summary>
            Retrieves product properties (not session properties) from the product database.
            </summary>
            <returns>Value of the property, or an empty string if the property is not set.</returns>
            <remarks><p>
            Note this is not the correct method for getting ordinary session properties. For that,
            see the indexer on the Session class.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproductproperty.asp">MsiGetProductProperty</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.VerifyDiskSpace">
            <summary>
            Checks to see if sufficient disk space is present for the current installation.
            </summary>
            <returns>True if there is sufficient disk space; false otherwise.</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiverifydiskspace.asp">MsiVerifyDiskSpace</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.GetTotalCost">
            <summary>
            Gets the total disk space per drive required for the installation.
            </summary>
            <returns>A list of InstallCost structures, specifying the cost for each drive</returns>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumcomponentcosts.asp">MsiEnumComponentCosts</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.GetMode(Microsoft.Deployment.WindowsInstaller.InstallRunMode)">
            <summary>
            Gets the designated mode flag for the current install session.
            </summary>
            <param name="mode">The type of mode to be checked.</param>
            <returns>The value of the designated mode flag.</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">an invalid mode flag was specified</exception>
            <remarks><p>
            Note that only the following run modes are available to read from
            a deferred custom action:<list type="bullet">
            <item><description><see cref="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Scheduled"/></description></item>
            <item><description><see cref="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Rollback"/></description></item>
            <item><description><see cref="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Commit"/></description></item>
            </list>
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetmode.asp">MsiGetMode</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.SetMode(Microsoft.Deployment.WindowsInstaller.InstallRunMode,System.Boolean)">
            <summary>
            Sets the designated mode flag for the current install session.
            </summary>
            <param name="mode">The type of mode to be set.</param>
            <param name="value">The desired value of the mode.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">an invalid mode flag was specified</exception>
            <exception cref="T:System.InvalidOperationException">the mode cannot not be set</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetmode.asp">MsiSetMode</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.GetSourcePath(System.String)">
            <summary>
            Gets the full path to the designated folder on the source media or server image.
            </summary>
            <exception cref="T:System.ArgumentException">the folder was not found in the Directory table</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetsourcepath.asp">MsiGetSourcePath</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.GetTargetPath(System.String)">
            <summary>
            Gets the full path to the designated folder on the installation target drive.
            </summary>
            <exception cref="T:System.ArgumentException">the folder was not found in the Directory table</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigettargetpath.asp">MsiGetTargetPath</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.SetTargetPath(System.String,System.String)">
            <summary>
            Sets the full path to the designated folder on the installation target drive.
            </summary>
            <exception cref="T:System.ArgumentException">the folder was not found in the Directory table</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <remarks><p>
            Setting the target path of a directory changes the path specification for the directory
            in the in-memory Directory table. Also, the path specifications of all other path objects
            in the table that are either subordinate or equivalent to the changed path are updated
            to reflect the change. The properties for each affected path are also updated.
            </p><p>
            If an error occurs in this function, all updated paths and properties revert to
            their previous values. Therefore, it is safe to treat errors returned by this function
            as non-fatal.
            </p><p>
            Do not attempt to configure the target path if the components using those paths
            are already installed for the current user or for a different user. Check the
            ProductState property before setting the target path to determine if the product
            containing this component is installed.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisettargetpath.asp">MsiSetTargetPath</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.SetInstallLevel(System.Int32)">
            <summary>
            Sets the install level for the current installation to a specified value and
            recalculates the Select and Installed states for all features in the Feature
            table. Also sets the Action state of each component in the Component table based
            on the new level.
            </summary>
            <param name="installLevel">New install level</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <remarks><p>
            The SetInstallLevel method sets the following:<list type="bullet">
            <item><description>The installation level for the current installation to a specified value</description></item>
            <item><description>The Select and Installed states for all features in the Feature table</description></item>
            <item><description>The Action state of each component in the Component table, based on the new level</description></item>
            </list>
            If 0 or a negative number is passed in the ilnstallLevel parameter,
            the current installation level does not change, but all features are still
            updated based on the current installation level.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetinstalllevel.asp">MsiSetInstallLevel</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.DoAction(System.String)">
            <summary>
            Executes a built-in action, custom action, or user-interface wizard action.
            </summary>
            <param name="action">Name of the action to execute.  Case-sensitive.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
            <remarks><p>
            The DoAction method executes the action that corresponds to the name supplied. If the
            name is not recognized by the installer as a built-in action or as a custom action in
            the CustomAction table, the name is passed to the user-interface handler object, which
            can invoke a function or a dialog box. If a null action name is supplied, the installer
            uses the upper-case value of the ACTION property as the action to perform. If no property
            value is defined, the default action is performed, defined as "INSTALL".
            </p><p>
            Actions that update the system, such as the InstallFiles and WriteRegistryValues
            actions, cannot be run by calling MsiDoAction. The exception to this rule is if DoAction
            is called from a custom action that is scheduled in the InstallExecuteSequence table
            between the InstallInitialize and InstallFinalize actions. Actions that do not update the
            system, such as AppSearch or CostInitialize, can be called.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidoaction.asp">MsiDoAction</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.DoAction(System.String,Microsoft.Deployment.WindowsInstaller.CustomActionData)">
            <summary>
            Executes a built-in action, custom action, or user-interface wizard action.
            </summary>
            <param name="action">Name of the action to execute.  Case-sensitive.</param>
            <param name="actionData">Optional data to be passed to a deferred custom action.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
            <remarks><p>
            The DoAction method executes the action that corresponds to the name supplied. If the
            name is not recognized by the installer as a built-in action or as a custom action in
            the CustomAction table, the name is passed to the user-interface handler object, which
            can invoke a function or a dialog box. If a null action name is supplied, the installer
            uses the upper-case value of the ACTION property as the action to perform. If no property
            value is defined, the default action is performed, defined as "INSTALL".
            </p><p>
            Actions that update the system, such as the InstallFiles and WriteRegistryValues
            actions, cannot be run by calling MsiDoAction. The exception to this rule is if DoAction
            is called from a custom action that is scheduled in the InstallExecuteSequence table
            between the InstallInitialize and InstallFinalize actions. Actions that do not update the
            system, such as AppSearch or CostInitialize, can be called.
            </p><p>
            If the called action is a deferred, rollback, or commit custom action, then the supplied
            <paramref name="actionData"/> will be available via the <see cref="P:Microsoft.Deployment.WindowsInstaller.Session.CustomActionData"/>
            property of that custom action's session.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidoaction.asp">MsiDoAction</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.DoActionSequence(System.String)">
            <summary>
            Executes an action sequence described in the specified table.
            </summary>
            <param name="sequenceTable">Name of the table containing the action sequence.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
            <remarks><p>
            This method queries the specified table, ordering the actions by the numbers in the Sequence column.
            For each row retrieved, an action is executed, provided that any supplied condition expression does
            not evaluate to FALSE.
            </p><p>
            An action sequence containing any actions that update the system, such as the InstallFiles and
            WriteRegistryValues actions, cannot be run by calling DoActionSequence. The exception to this rule is if
            DoActionSequence is called from a custom action that is scheduled in the InstallExecuteSequence table
            between the InstallInitialize and InstallFinalize actions. Actions that do not update the system, such
            as AppSearch or CostInitialize, can be called.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisequence.asp">MsiSequence</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.System#IFormatProvider#GetFormat(System.Type)">
            <summary>
            Implements formatting for <see cref="T:Microsoft.Deployment.WindowsInstaller.Record"/> data.
            </summary>
            <param name="formatType">Type of format object to get.</param>
            <returns>The the current instance, if <paramref name="formatType"/> is the same type
            as the current instance; otherwise, null.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.Dispose(System.Boolean)">
            <summary>
            Closes the session handle.  Also closes the active database handle, if it is open.
            After closing a handle, further method calls may throw an <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
            </summary>
            <param name="disposing">If true, the method has been called directly
            or indirectly by a user's code, so managed and unmanaged resources will
            be disposed. If false, only unmanaged resources will be disposed.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.ValidateSessionAccess">
            <summary>
            Throws an exception if the custom action is not able to access immedate session details.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.Database">
            <summary>
            Gets the Database for the install session.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the Database cannot be accessed</exception>
            <remarks><p>
            Normally there is no need to close this Database object.  The same object can be
            used throughout the lifetime of the Session, and it will be closed when the Session
            is closed.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetactivedatabase.asp">MsiGetActiveDatabase</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.Language">
            <summary>
            Gets the numeric language ID used by the current install session.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetlanguage.asp">MsiGetLanguage</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.Item(System.String)">
            <summary>
            Gets or sets the string value of a named installer property, as maintained by the
            Session object in the in-memory Property table, or, if it is prefixed with a percent
            sign (%), the value of a system environment variable for the current process.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproperty.asp">MsiGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetproperty.asp">MsiSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.Components">
            <summary>
            Gets an accessor for components in the current session.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.Features">
            <summary>
            Gets an accessor for features in the current session.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.CustomActionData">
            <summary>
            Gets custom action data for the session that was supplied by the caller.
            </summary>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Session.DoAction(System.String,Microsoft.Deployment.WindowsInstaller.CustomActionData)"/>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.NonImmediatePropertyNames">
            <summary>
            Gets the (short) list of properties that are available from non-immediate custom actions.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ShortcutTarget">
            <summary>
            Holds information about the target of a shortcut file.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.op_Equality(Microsoft.Deployment.WindowsInstaller.ShortcutTarget,Microsoft.Deployment.WindowsInstaller.ShortcutTarget)">
            <summary>
            Tests whether two shortcut targets have the same product code, feature, and/or component code.
            </summary>
            <param name="st1">The first shortcut target to compare.</param>
            <param name="st2">The second shortcut target to compare.</param>
            <returns>True if all parts of the targets are the same, else false.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.op_Inequality(Microsoft.Deployment.WindowsInstaller.ShortcutTarget,Microsoft.Deployment.WindowsInstaller.ShortcutTarget)">
            <summary>
            Tests whether two shortcut targets have the same product code, feature, and/or component code.
            </summary>
            <param name="st1">The first shortcut target to compare.</param>
            <param name="st2">The second shortcut target to compare.</param>
            <returns>True if any parts of the targets are different, else false.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.Equals(System.Object)">
            <summary>
            Tests whether two shortcut targets have the same product code, feature, and/or component code.
            </summary>
            <param name="obj">The shortcut target to compare to the current object.</param>
            <returns>True if <paramref name="obj"/> is a shortcut target and all parts of the targets are the same, else false.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.GetHashCode">
            <summary>
            Generates a hash code using all parts of the shortcut target.
            </summary>
            <returns>An integer suitable for hashing the shortcut target.</returns>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.ProductCode">
            <summary>
            Gets the target product code of the shortcut, or null if not available.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.Feature">
            <summary>
            Gets the name of the target feature of the shortcut, or null if not available.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.ComponentCode">
            <summary>
            Gets the target component code of the shortcut, or null if not available.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.SourceList">
            <summary>
            A list of sources for an installed product or patch.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.Add(System.String)">
            <summary>
            Adds a network or URL source to the source list of the installed product.
            </summary>
            <param name="item">Path to the source to be added. This parameter is
            expected to contain only the path without the filename.</param>
            <remarks><p>
            If this method is called with a new source, the installer adds the source
            to the end of the source list. 
            </p><p>
            If this method is called with a source already existing in the source
            list, it has no effect.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistaddsource.asp">MsiSourceListAddSource</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistaddsourceex.asp">MsiSourceListAddSourceEx</a>
            </p></remarks>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.SourceList.Insert(System.String,System.Int32)"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.Insert(System.String,System.Int32)">
            <summary>
            Adds or reorders a network or URL source for the product or patch.
            </summary>
            <param name="item">Path to the source to be added. This parameter is
            expected to contain only the path without the filename.</param>
            <param name="index">Specifies the priority order in which the source
            will be inserted</param>
            <remarks><p>
            If this method is called with a new source and <paramref name="index"/>
            is set to 0, the installer adds the source to the end of the source list. 
            </p><p>
            If this method is called with a source already existing in the source
            list and <paramref name="index"/> is set to 0, the installer retains the
            source's existing index.
            </p><p>
            If the method is called with an existing source in the source list
            and <paramref name="index"/> is set to a non-zero value, the source is
            removed from its current location in the list and inserted at the position
            specified by Index, before any source that already exists at that position.
            </p><p>
            If the method is called with a new source and Index is set to a
            non-zero value, the source is inserted at the position specified by
            <paramref name="index"/>, before any source that already exists at
            that position. The index value for all sources in the list after the
            index specified by Index are updated to ensure unique index values and
            the pre-existing order is guaranteed to remain unchanged.
            </p><p>
            If <paramref name="index"/> is greater than the number of sources
            in the list, the source is placed at the end of the list with an index
            value one larger than any existing source.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistaddsourceex.asp">MsiSourceListAddSourceEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.Clear">
            <summary>
            Clears sources of all types: network, url, and media.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearall.asp">MsiSourceListClearAll</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.ClearNetworkSources">
            <summary>
            Removes all network sources from the list. URL sources are not affected.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearallex.asp">MsiSourceListClearAllEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.ClearUrlSources">
            <summary>
            Removes all URL sources from the list. Network sources are not affected.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearallex.asp">MsiSourceListClearAllEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.Contains(System.String)">
            <summary>
            Checks if the specified source exists in the list.
            </summary>
            <param name="item">case-insensitive source to look for</param>
            <returns>true if the source exists in the list, false otherwise</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.CopyTo(System.String[],System.Int32)">
            <summary>
            Copies the network and URL sources from this list into an array.
            </summary>
            <param name="array">destination array to be filed</param>
            <param name="arrayIndex">offset into the destination array where copying begins</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.Remove(System.String)">
            <summary>
            Removes a network or URL source.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearsource.asp">MsiSourceListClearSource</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.GetEnumerator">
            <summary>
            Enumerates the network and URL sources in the source list of the patch or product installation.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistenumsources.asp">MsiSourceListEnumSources</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.ForceResolution">
            <summary>
            Forces the installer to search the source list for a valid
            source the next time a source is required. For example, when the
            installer performs an installation or reinstallation, or when it
            requires the path for a component that is set to run from source.
            </summary>
            <remarks><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistforceresolution.asp">MsiSourceListForceResolution</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistforceresolutionex.asp">MsiSourceListForceResolutionEx</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.MediaList">
            <summary>
            Gets the list of disks registered for the media source of
            the patch or product installation.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.Count">
            <summary>
            Gets the number of network and URL sources in the list.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.IsReadOnly">
            <summary>
            Gets a boolean value indicating whether the list is read-only.
            A SourceList is never read-only.
            </summary>
            <value>read-only status of the list</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.MediaPackagePath">
            <summary>
            Gets or sets the path relative to the root of the installation media.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.DiskPrompt">
            <summary>
            Gets or sets the prompt template that is used when prompting the user
            for installation media.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.LastUsedSource">
            <summary>
            Gets or sets the most recently used source location for the product.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.PackageName">
            <summary>
            Gets or sets the name of the Windows Installer package or patch package
            on the source.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.LastUsedType">
            <summary>
            Gets the type of the last-used source.
            </summary>
            <remarks><p>
            <ul>
            <li>&quot;n&quot; = network location</li>
            <li>&quot;u&quot; = URL location</li>
            <li>&quot;m&quot; = media location</li>
            <li>(empty string) = no last used source</li>
            </ul>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.Item(System.String)">
            <summary>
            Gets or sets source list information properties of a product or patch installation.
            </summary>
            <param name="property">The source list information property name.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">An unknown product, patch, or property was requested</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistgetinfo.asp">MsiSourceListGetInfo</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.SourceMediaList">
            <summary>
            A list of source media for an installed product or patch.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.Add(Microsoft.Deployment.WindowsInstaller.MediaDisk)">
            <summary>
            Adds or updates a disk of the media source for the product or patch.
            </summary>
            <remarks><p>
            To change the disk prompt only, get the existing volume label from the
            registry and provide it in this call along with the new disk prompt.
            Passing a null or empty string for <paramref name="volumeLabel"/>
            registers an empty string as the volume label.
            <p>To change the volume label only, get the existing disk prompt
            that is registered and provide it when calling SourceListAddMediaDisk
            along with the new volume label. Passing null or an empty string
            registers an empty string as the disk prompt.</p>
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistaddmediadisk.asp">MsiSourceListAddMediaDisk</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.Clear">
            <summary>
            Removes all source media from the list.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearallex.asp">MsiSourceListClearAllEx</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.Contains(System.Int32)">
            <summary>
            Checks if the specified media disk id exists in the list.
            </summary>
            <param name="diskId">disk id of the media to look for</param>
            <returns>true if the media exists in the list, false otherwise</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.CopyTo(Microsoft.Deployment.WindowsInstaller.MediaDisk[],System.Int32)">
            <summary>
            Copies the source media info from this list into an array.
            </summary>
            <param name="array">destination array to be filed</param>
            <param name="arrayIndex">offset into the destination array where copying begins</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.Remove(System.Int32)">
            <summary>
            Removes a specified disk from the set of registered disks.
            </summary>
            <param name="diskId">ID of the disk to remove</param>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearmediadisk.asp">MsiSourceListClearMediaDisk</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.GetEnumerator">
            <summary>
            Enumerates the source media in the source list of the patch or product installation.
            </summary>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistenummediadisks.asp">MsiSourceListEnumMediaDisks</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceMediaList.Count">
            <summary>
            Gets the number of source media in the list.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceMediaList.IsReadOnly">
            <summary>
            Gets a boolean value indicating whether the list is read-only.
            A SourceMediaList is never read-only.
            </summary>
            <value>read-only status of the list</value>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.SummaryInfo">
            <summary>
            Provides access to summary information of a Windows Installer database.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SummaryInfo.#ctor(System.String,System.Boolean)">
            <summary>
            Gets a SummaryInfo object that can be used to examine, update, and add
            properties to the summary information stream of a package or transform.
            </summary>
            <param name="packagePath">Path to the package (database) or transform</param>
            <param name="enableWrite">True to reserve resources for writing summary information properties.</param>
            <exception cref="T:System.IO.FileNotFoundException">the package does not exist or could not be read</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the package is an invalid format</exception>
            <remarks><p>
            The SummaryInfo object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetsummaryinformation.asp">MsiGetSummaryInformation</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Persist">
            <summary>
            Formats and writes the previously stored properties into the standard summary information stream.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The stream cannot be successfully written.</exception>
            <remarks><p>
            This method may only be called once after all the property values have been set. Properties may
            still be read after the stream is written.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfopersist.asp">MsiSummaryInfoPersist</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Title">
            <summary>Gets or sets the Title summary information property.</summary>
            <remarks><p>
            The Title summary information property briefly describes the type of installer package. Phrases
            such as "Installation Database" or "Transform" or "Patch" may be used for this property.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Subject">
            <summary>Gets or sets the Subject summary information property.</summary>
            <remarks><p>
            The Subject summary information property conveys to a file browser the product that can be installed using
            the logic and data in this installer database. For example, the value of the summary property for
            Microsoft Office 97 would be "Microsoft Office 97 Professional". This value is typically set from the
            installer property ProductName.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Author">
            <summary>Gets or sets the Author summary information property.</summary>
            <remarks><p>
            The Author summary information property conveys to a file browser the manufacturer of the installation
            database. This value is typically set from the installer property Manufacturer.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Keywords">
            <summary>Gets or sets the Keywords summary information property.</summary>
            <remarks><p>
            The Keywords summary information property is used by file browsers to hold keywords that permit the
            database file to be found in a keyword search. The set of keywords typically includes "Installer" as
            well as product-specific keywords, and may be localized.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Comments">
            <summary>Gets or sets the Comments summary information property.</summary>
            <remarks><p>
            The Comments summary information property conveys the general purpose of the installer database. By convention,
            the value for this summary property is set to the following:
            </p><p>
            "This installer database contains the logic and data required to install &lt;product name&gt;."
            </p><p>
            where &lt;product name&gt; is the name of the product being installed. In general the value for this summary
            property only changes in the product name, nothing else.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Template">
            <summary>Gets or sets the Template summary information property.</summary>
            <remarks><p>
            The Template summary information propery indicates the platform and language versions supported by the database.
            </p><p>
            The syntax of the Template Summary property information is:
            [platform property][,platform property][,...];[language id][,language id][,...]
            </p><p>
            For example, the following are all valid values for the Template Summary property:
            <list type="bullet">
            <item>Intel;1033</item>
            <item>Intel64;1033</item>
            <item>;1033</item>
            <item>;</item>
            <item>Intel ;1033,2046</item>
            <item>Intel64;1033,2046</item>
            <item>Intel;0</item>
            </list>
            </p><p>
            If this is a 64-bit Windows Installer, enter Intel64 in the Template summary information property. Note that an
            installation package cannot have both the Intel and Intel64 properties set.
            </p><p>
            If the current platform does not match one of the platforms specified then the installer will not process the
            package. Not specifying a platform implies that the package is platform-independent.
            </p><p>
            Entering 0 in the language ID field of the Template summary information property, or leaving this field empty,
            indicates that the package is language neutral.
            </p><p>
            There are variations of this property depending on whether it is in a source installer database or a transform.
            </p><p>
            Source Installer Database - Only one language can be specified in a source installer database. Merge Modules are
            the only packages that may have multiple languages. For more information, see Multiple Language Merge Modules.
            </p><p>
            Transform - In a transform file, only one language may be specified. The specified platform and language determine
            whether a transform can be applied to a particular database. The platform property and the language property can
            be left blank if no transform restriction relies on them to validate the transform.
            </p><p>
            This summary property is REQUIRED.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.LastSavedBy">
            <summary>Gets or sets the LastSavedBy summary information property.</summary>
            <remarks><p>
            The installer sets the Last Saved By summary information property to the value of the LogonUser property during
            an administrative installation. The installer never uses this property and a user never needs to modify it.
            Developers of a database editing tool may use this property to track the last person to modify the database.
            This property should be left set to null in a final shipping database.
            </p><p>
            In a transform, this summary property contains the platform and language ID(s) that a database should have
            after it has been transformed. The property specifies to what the Template should be set in the new database.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.RevisionNumber">
            <summary>Gets or sets the RevisionNumber summary information property.</summary>
            <remarks><p>
            The Revision Number summary information property contains the package code for the installer package. The
            package code is a unique identifier of the installer package. 
            </p><p>
            The Revision Number summary information  property of a patch package specifies the GUID patch code for
            the patch. This is followed by a list of patch code GUIDs for obsolete patches that are removed when this
            patch is applied. The patch codes are concatenated with no delimiters separating GUIDs in the list.
            </p><p>
            The Revision Number summary information  property of a transform package lists the product code GUIDs
            and version of the new and original products and the upgrade code GUID. The list is separated with
            semicolons as follows.
            </p><p>
            Original-Product-Code Original-Product-Version ; New-Product Code New-Product-Version; Upgrade-Code
            </p><p>
            This summary property is REQUIRED.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.CreatingApp">
            <summary>Gets or sets the CreatingApp summary information property.</summary>
            <remarks><p>
            The CreatingApp summary information property conveys which application created the installer database.
            In general the value for this summary property is the name of the software used to author this database.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.LastPrintTime">
            <summary>Gets or sets the LastPrintTime summary information property.</summary>
            <remarks><p>
            The LastPrintTime summary information property can be set to the date and time during an administrative
            installation to record when the administrative image was created. For non-administrative installations
            this property is the same as the CreateTime summary information property.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.CreateTime">
            <summary>Gets or sets the CreateTime summary information property.</summary>
            <remarks><p>
            The CreateTime summary information property conveys when the installer database was created.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.LastSaveTime">
            <summary>Gets or sets the LastSaveTime summary information property.</summary>
            <remarks><p>
            The LastSaveTime summary information property conveys when the last time the installer database was
            modified. Each time a user changes an installation the value for this summary property is updated to
            the current system time/date at the time the installer database was saved. Initially the value for
            this summary property is set to null to indicate that no changes have yet been made.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.CodePage">
            <summary>Gets or sets the CodePage summary information property.</summary>
            <remarks><p>
            The Codepage summary information property is the numeric value of the ANSI code page used for any
            strings that are stored in the summary information. Note that this is not the same code page for
            strings in the installation database. The Codepage summary information property is used to translate
            the strings in the summary information into Unicode when calling the Unicode API functions. The
            Codepage summary information property must be set before any string properties are set in the
            summary information.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.PageCount">
            <summary>Gets or sets the PageCount summary information property.</summary>
            <remarks><p>
            For an installation package, the PageCount summary information property contains the minimum
            installer version required. For Windows Installer version 1.0, this property must be set to the
            integer 100. For 64-bit Windows Installer Packages, this property must be set to the integer 200.
            </p><p>
            For a transform package, the PageCount summary information property contains minimum installer
            version required to process the transform. Set to the greater of the two PageCount summary information
            property values belonging to the databases used to generate the transform.
            </p><p>
            The PageCount summary information property is set to null in patch packages.
            </p><p>
            This summary property is REQUIRED.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.WordCount">
            <summary>Gets or sets the WordCount summary information property.</summary>
            <remarks><p>
            The WordCount summary information property indicates the type of source file image. If this property is
            not present, it defaults to 0. Note that this property is stored in place of the standard Count property.
            </p><p>
            This property is a bit field. New bits may be added in the future. At present the following bits are
            available:
            <list type="bullet">
            <item>Bit 0: 0 = long file names, 1 = short file names</item>
            <item>Bit 1: 0 = source is uncompressed, 1 = source is compressed</item>
            <item>Bit 2: 0 = source is original media, 1 = source is administrative installation</item>
            <item>[MSI 4.0] Bit 3: 0 = elevated privileges can be required to install, 1 = elevated privileges are not required to install</item>
            </list>
            </p><p>
            These are combined to give the WordCount summary information property one of the following values
            indicating a type of source file image:
            <list type="bullet">
            <item>0 - Original source using long file names. Matches tree in Directory table.</item>
            <item>1 - Original source using short file names. Matches tree in Directory table.</item>
            <item>2 - Compressed source files using long file names. Matches cabinets and files in the Media table.</item>
            <item>3 - Compressed source files using short file names. Matches cabinets and files in the Media table.</item>
            <item>4 - Administrative image using long file names. Matches tree in Directory table.</item>
            <item>5 - Administrative image using short file names. Matches tree in Directory table.</item>
            </list>
            </p><p>
            Note that if the package is marked as compressed (bit 1 is set), the installer only installs files
            located at the root of the source. In this case, even files marked as uncompressed in the File table must
            be located at the root to be installed. To specify a source image that has both a cabinet file (compressed
            files) and uncompressed files that match the tree in the Directory table, mark the package as uncompressed
            by leaving bit 1 unset (value=0) in the WordCount summary information property and set
            <see cref="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.Compressed"/> (value=16384) in the Attributes column of the File table
            for each file in the cabinet.
            </p><p>
            For a patch package, the WordCount summary information property specifies the patch engine that was used
            to create the patch files. The default value is 1 and indicates that MSPATCH was used to create the patch
            A value of "2" means that the patch is using smaller, optimized, files available only with Windows Installer
            version 1.2 or later. A patch with a WordCount of "2" fails immediately if used with a Windows Installer
            version earlier than 1.2. A patch with a WordCount of "3" fails immediately if used with a Windows Installer
            version earlier than 2.0.
            </p><p>
            This summary property is REQUIRED.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.CharacterCount">
            <summary>Gets or sets the CharacterCount summary information property.</summary>
            <remarks><p>
            The CharacterCount summary information property is only used in transforms. This part of the summary
            information stream is divided into two 16-bit words. The upper word contains the transform validation
            flags. The lower word contains the transform error condition flags.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Security">
            <summary>Gets or sets the Security summary information property.</summary>
            <remarks><p>
            The Security summary information property conveys whether the package should be opened as read-only. The database
            editing tool should not modify a read-only enforced database and should issue a warning at attempts to modify a
            read-only recommended database. The following values of this property are applicable to Windows Installer files:
            <list type="bullet">
            <item>0 - no restriction</item>
            <item>2 - read only recommended</item>
            <item>4 - read only enforced</item>
            </list>
            </p><p>
            This property should be set to read-only recommended (2) for an installation database and to read-only
            enforced (4) for a transform or patch.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.TableCollection">
            <summary>
            Contains information about all the tables in a Windows Installer database.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.Add(Microsoft.Deployment.WindowsInstaller.TableInfo)">
            <summary>
            Adds a new table to the database.
            </summary>
            <param name="item">information about the table to be added</param>
            <exception cref="T:System.InvalidOperationException">a table with the same name already exists in the database</exception>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.Clear">
            <summary>
            Removes all tables (and all data) from the database.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.Contains(System.String)">
            <summary>
            Checks if the database contains a table with the given name.
            </summary>
            <param name="item">case-sensitive name of the table to search for</param>
            <returns>True if the table exists, false otherwise.</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.CopyTo(Microsoft.Deployment.WindowsInstaller.TableInfo[],System.Int32)">
            <summary>
            Copies the table information from this collection into an array.
            </summary>
            <param name="array">destination array to be filed</param>
            <param name="arrayIndex">offset into the destination array where copying begins</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.Remove(System.String)">
            <summary>
            Removes a table from the database.
            </summary>
            <param name="item">case-sensitive name of the table to be removed</param>
            <returns>true if the table was removed, false if the table did not exist</returns>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.GetEnumerator">
            <summary>
            Enumerates the tables in the database.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.TableCollection.Count">
            <summary>
            Gets the number of tables in the database.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.TableCollection.IsReadOnly">
            <summary>
            Gets a boolean value indicating whether the collection is read-only.
            A TableCollection is read-only when the database is read-only.
            </summary>
            <value>read-only status of the collection</value>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.TableCollection.Item(System.String)">
            <summary>
            Gets information about a given table.
            </summary>
            <param name="table">case-sensitive name of the table</param>
            <returns>information about the requested table, or null if the table does not exist in the database</returns>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.TableInfo">
            <summary>
            Defines a table in an installation database.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.TableInfo.#ctor(System.String,System.Collections.Generic.ICollection{Microsoft.Deployment.WindowsInstaller.ColumnInfo},System.Collections.Generic.IList{System.String})">
            <summary>
            Creates a table definition.
            </summary>
            <param name="name">Name of the table.</param>
            <param name="columns">Columns in the table.</param>
            <param name="primaryKeys">The primary keys of the table.</param>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.TableInfo.ToString">
            <summary>
            Gets a string representation of the table.
            </summary>
            <returns>The name of the table.</returns>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.Name">
            <summary>
            Gets the name of the table.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.Columns">
            <summary>
            Gets information about the columns in this table.
            </summary>
            <remarks><p>
            This property queries the database every time it is called,
            to ensure the returned values are up-to-date. For best performance,
            hold onto the returned collection if using it more than once.
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.PrimaryKeys">
            <summary>
            Gets the names of the columns that are primary keys of the table.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.SqlCreateString">
            <summary>
            Gets an SQL CREATE string that can be used to create the table.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.SqlInsertString">
            <summary>
            Gets an SQL INSERT string that can be used insert a new record into the table.
            </summary>
            <remarks><p>
            The values are expressed as question-mark tokens, to be supplied by the record.
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.SqlSelectString">
            <summary>
            Gets an SQL SELECT string that can be used to select all columns of the table.
            </summary>
            <remarks><p>
            The columns are listed explicitly in the SELECT string, as opposed to using "SELECT *".
            </p></remarks>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.ValidationErrorInfo">
            <summary>
            Contains specific information about an error encountered by the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Validate(Microsoft.Deployment.WindowsInstaller.Record)"/>,
            <see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateNew(Microsoft.Deployment.WindowsInstaller.Record)"/>, or <see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateFields(Microsoft.Deployment.WindowsInstaller.Record)"/> methods of the
            <see cref="T:Microsoft.Deployment.WindowsInstaller.View"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ValidationErrorInfo.Error">
            <summary>
            Gets the type of validation error encountered.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.ValidationErrorInfo.Column">
            <summary>
            Gets the column containing the error, or null if the error applies to the whole row.
            </summary>
        </member>
        <member name="T:Microsoft.Deployment.WindowsInstaller.View">
            <summary>
            A View represents a result set obtained when processing a query using the
            <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.OpenView(System.String,System.Object[])"/> method of a
            <see cref="P:Microsoft.Deployment.WindowsInstaller.View.Database"/>. Before any data can be transferred,
            the query must be executed using the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Execute(Microsoft.Deployment.WindowsInstaller.Record)"/> method, passing to
            it all replaceable parameters designated within the SQL query string.
            </summary>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Execute(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Executes a SQL View query and supplies any required parameters. The query uses the
            question mark token to represent parameters as described in SQL Syntax. The values of
            these parameters are passed in as the corresponding fields of a parameter record.
            </summary>
            <param name="executeParams">Optional Record that supplies the parameters. This
            Record contains values to replace the parameter tokens in the SQL query.</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Execute">
            <summary>
            Executes a SQL View query.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Fetch">
            <summary>
            Fetches the next sequential record from the view, or null if there are no more records.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View is not in an active state</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            The Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Updates a fetched Record.
            </summary>
            <param name="mode">specifies the modify mode</param>
            <param name="record">the Record to modify</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the modification failed,
            or a validation was requested and the data did not pass</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            You can update or delete a record immediately after inserting, or seeking provided you
            have NOT modified the 0th field of the inserted or sought record.
            </p><p>
            To execute any SQL statement, a View must be created. However, a View that does not
            create a result set, such as CREATE TABLE, or INSERT INTO, cannot be used with any of
            the Modify methods to update tables though the view.
            </p><p>
            You cannot fetch a record containing binary data from one database and then use
            that record to insert the data into another database. To move binary data from one database
            to another, you should export the data to a file and then import it into the new database
            using a query and the <see cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.Int32,System.String)"/>. This ensures that each database has
            its own copy of the binary data.
            </p><p>
            Note that custom actions can only add, modify, or remove temporary rows, columns,
            or tables from a database. Custom actions cannot modify persistent data in a database,
            such as data that is a part of the database stored on disk.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
            </p></remarks>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Refresh(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Insert(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Update(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Assign(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Replace(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Delete(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.InsertTemporary(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Seek(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Merge(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Validate(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateNew(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateFields(Microsoft.Deployment.WindowsInstaller.Record)"/>
            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateDelete(Microsoft.Deployment.WindowsInstaller.Record)"/>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Refresh(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Refreshes the data in a Record.
            </summary>
            <param name="record">the Record to be refreshed</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the refresh failed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            The Record must have been obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>. Fails with
            a deleted Record. Works only with read-write Records.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Insert(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Inserts a Record into the view.
            </summary>
            <param name="record">the Record to be inserted</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the insertion failed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Fails if a row with the same primary keys exists. Fails with a read-only database.
            This method cannot be used with a View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Update(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Updates the View with new data from the Record.
            </summary>
            <param name="record">the new data</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the update failed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Only non-primary keys can be updated. The Record must have been obtained by calling
            <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>. Fails with a deleted Record. Works only with read-write Records.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Assign(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Updates or inserts a Record into the View.
            </summary>
            <param name="record">the Record to be assigned</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the assignment failed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Updates record if the primary keys match an existing row and inserts if they do not match.
            Fails with a read-only database. This method cannot be used with a View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Replace(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Updates or deletes and inserts a Record into the View.
            </summary>
            <param name="record">the Record to be replaced</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the replacement failed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            The Record must have been obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>. Updates record if the
            primary keys are unchanged. Deletes old row and inserts new if primary keys have changed.
            Fails with a read-only database. This method cannot be used with a View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Delete(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Deletes a Record from the View.
            </summary>
            <param name="record">the Record to be deleted</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the deletion failed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            The Record must have been obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>. Fails if the row has been
            deleted. Works only with read-write records. This method cannot be used with a View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.InsertTemporary(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Inserts a Record into the View.  The inserted data is not persistent.
            </summary>
            <param name="record">the Record to be inserted</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the insertion failed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Fails if a row with the same primary key exists. Works only with read-write records.
            This method cannot be used with a View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Seek(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Refreshes the information in the supplied record without changing the position
            in the result set and without affecting subsequent fetch operations.
            </summary>
            <param name="record">the Record to be filled with the result of the seek</param>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the seek failed</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            After seeking, the Record may then be used for subsequent Update, Delete, and Refresh
            operations.  All primary key columns of the table must be in the query and the Record must
            have at least as many fields as the query. Seek cannot be used with multi-table queries.
            This method cannot be used with a View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Merge(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Inserts or validates a record.
            </summary>
            <param name="record">the Record to be merged</param>
            <returns>true if the record was inserted or validated, false if there is an existing
            record with the same primary keys that is not identical</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the merge failed (for a reason other than invalid data)</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Works only with read-write records. This method cannot be used with a
            View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Validate(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Validates a record, returning information about any errors.
            </summary>
            <param name="record">the Record to be validated</param>
            <returns>null if the record was validated; if there is an existing record with
            the same primary keys that has conflicting data then error information is returned</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the validation failed (for a reason other than invalid data)</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            The Record must have been obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>.
            Works with read-write and read-only records. This method cannot be used
            with a View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewgeterror.asp">MsiViewGetError</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.ValidateNew(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Validates a new record, returning information about any errors.
            </summary>
            <param name="record">the Record to be validated</param>
            <returns>null if the record was validated; if there is an existing
            record with the same primary keys then error information is returned</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the validation failed (for a reason other than invalid data)</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Checks for duplicate keys. The Record must have been obtained by
            calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>. Works with read-write and read-only records.
            This method cannot be used with a View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewgeterror.asp">MsiViewGetError</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.ValidateFields(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Validates fields of a fetched or new record, returning information about any errors.
            Can validate one or more fields of an incomplete record.
            </summary>
            <param name="record">the Record to be validated</param>
            <returns>null if the record was validated; if there is an existing record with
            the same primary keys that has conflicting data then error information is returned</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the validation failed (for a reason other than invalid data)</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Works with read-write and read-only records. This method cannot be used with
            a View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewgeterror.asp">MsiViewGetError</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.ValidateDelete(Microsoft.Deployment.WindowsInstaller.Record)">
            <summary>
            Validates a record that will be deleted later, returning information about any errors.
            </summary>
            <param name="record">the Record to be validated</param>
            <returns>null if the record is safe to delete; if another row refers to
            the primary keys of this row then error information is returned</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the validation failed (for a reason other than invalid data)</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Validation does not check for the existence of the primary keys of this row in properties
            or strings. Does not check if a column is a foreign key to multiple tables. Works with
            read-write and read-only records. This method cannot be used with a View containing joins.
            </p><p>
            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
            </p><p>
            Win32 MSI APIs:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>,
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewgeterror.asp">MsiViewGetError</a>
            </p></remarks>
        </member>
        <member name="M:Microsoft.Deployment.WindowsInstaller.View.GetEnumerator">
            <summary>
            Enumerates over the Records retrieved by the View.
            </summary>
            <returns>An enumerator of Record objects.</returns>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The View was not <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Execute(Microsoft.Deployment.WindowsInstaller.Record)"/>d before attempting the enumeration.</exception>
            <remarks><p>
            Each Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
            It is best that the handle be closed manually as soon as it is no longer
            needed, as leaving lots of unused handles open can degrade performance.
            However, note that it is not necessary to complete the enumeration just
            for the purpose of closing handles, because Records are fetched lazily
            on each step of the enumeration.
            </p><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
            </p></remarks>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.View.Database">
            <summary>
            Gets the Database on which this View was opened.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.View.QueryString">
            <summary>
            Gets the SQL query string used to open this View.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.View.Tables">
            <summary>
            Gets the set of tables that were included in the SQL query for this View.
            </summary>
        </member>
        <member name="P:Microsoft.Deployment.WindowsInstaller.View.Columns">
            <summary>
            Gets the set of columns that were included in the query for this View,
            or null if this view is not a SELECT query.
            </summary>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View is not in an active state</exception>
            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
            <remarks><p>
            Win32 MSI API:
            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewgetcolumninfo.asp">MsiViewGetColumnInfo</a>
            </p></remarks>
        </member>
    </members>
</doc>
